Skip to content

Instantly share code, notes, and snippets.

Avatar

Nicko van Someren nickovs

  • Absolute Software
  • Boulder, CO, USA
View GitHub Profile
@nickovs
nickovs / badger_orion.py
Created May 28, 2022
A simple script for receiving water meter readings from a Badger ORION water meter using an Software Defined Radio (SDR).
View badger_orion.py
#!/usr/bin/env python3
# A simply tool for receiving water meter readings from a Badger ORION water meter.
# Device radio details can be found at https://fccid.io/GIF2006B
# Requires rtl_433 to be installed. See https://github.com/merbanan/rtl_433
import sys
import json
import subprocess
@nickovs
nickovs / docker-remount.sh
Created Apr 17, 2022
A script to mount a host directory into a running Docker container
View docker-remount.sh
#!/bin/bash
# A script for mounting a host directory into a running Docker container
if [ "$#" -ne 3 ]; then
echo "Usage: $0 <container> <host path> <target path>"
exit 1
fi
CONTAINER=$1
@nickovs
nickovs / zbar_lambda_build.sh
Last active Aug 1, 2022
A script for building a version of the Zbar library suitable for running in an AWS Lambda instance
View zbar_lambda_build.sh
#!/bin/bash
# Clear out old images
[ -d "lib" ] && rm -r lib
cat <<EOF > tmp_recipe.sh
# This is the actual container-side recipe
yum groupinstall -y "Development Tools"
cd /root
@nickovs
nickovs / curve25519.py
Created Jun 29, 2021
A pure Python implementation of Curve25519
View curve25519.py
"""A pure Python implementation of Curve25519
This module supports both a low-level interface through curve25519(base_point, secret)
and curve25519_base(secret) that take 32-byte blocks of data as inputs and a higher
level interface using the X25519PrivateKey and X25519PublicKey classes that are
compatible with the classes in cryptography.hazmat.primitives.asymmetric.x25519 with
the same names.
"""
# By Nicko van Someren, 2021. This code is released into the public domain.
@nickovs
nickovs / stepper.py
Last active Jan 22, 2022
A stepper motor driver for MicroPython
View stepper.py
# stepper.py
# A micropython driver for 4-phase, unipolar stepper motors such as
# the 28BYJ-48
# Relesed to the Public Domain by Nicko van Someren, 2020
# The constructor for the Stepper class takes as arguments the four
# pins for driving the motor phases, in phase order, and optionally a
# timer. The pins can be passed as pin numbers or machine.Pin objects
@nickovs
nickovs / Hypercircumsphere.ipynb
Last active Feb 18, 2021
Compute the N-dimentional (hyper-)circumsphere
View Hypercircumsphere.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View Bezier Quadratic.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@nickovs
nickovs / aws-session.py
Created Nov 28, 2018
Easy sessions credentials for Amazon Web Services when multi-factor authentication is required.
View aws-session.py
#!/usr/bin/env python3
"""Fetch and print temporary session credentials with MFA
To use this tool first put the ARN of your MFA access token into a
file called .aws_token_id in your home directory and ensure that the
tool is on your path. Then execute the command:
eval `aws-session`
You will be promoted to enter your current MFA token value. After this
@nickovs
nickovs / pathprefix.py
Created Apr 4, 2018
Easier handling of file paths in Python
View pathprefix.py
# A Python (3) class for more compact path handling.
#
# If you find yourself calling os.path.join() with the same first parameter
# over and over again it can get rather tedious. Instead you can now go:
#
# path = PathPrefix("/some/path")
# file1 = path / "file1"
# sub_file = path / "subdir" / "file2"
class PathPrefix(str):