Skip to content

Instantly share code, notes, and snippets.

@mihow
mihow / clean_lambda_versions.py
Last active July 20, 2019 01:02
Script for cleaning out old AWS Lambda function versions
#! /usr/bin/env python3
import json
import boto3
import argparse
import time
lambda_client = boto3.client('lambda')
function_choices = [f['FunctionName'] for f in lambda_client.list_functions()['Functions']]
@mihow
mihow / two_axis_loop.pgm
Last active October 19, 2019 18:12
Arcus PMX-2ED-SA Program
HSPD=20000
LSPD=1000
ACC=300
DEC=300
EO=3
WHILE 1 = 1
X50000
Y50000
WAITX
WAITY
@mihow
mihow / general.php
Created January 29, 2020 01:08
Cast env var to boolean with default value in PHP
# https://craftcms.stackexchange.com/questions/13584/devmode-phpdotenv-variable-ignored
'devMode' => filter_var(getenv('DEV_MODE') ?: false, FILTER_VALIDATE_BOOLEAN),
@mihow
mihow / treebeard_migration_utils.py
Created February 29, 2020 04:54
Add wagtail child page in migrations
def add_child_page(parent_page, instance):
"""
Mimic the behavior of the "add_child" from Django treebeard.
We can't use `parent_page.add_child(instance=child_page)` inside of
migrations because historical models don't have access to class
methods. This replicates the behavior of `add_child` by calculating
the treebeard path, path depth and url path.
https://django-treebeard.readthedocs.io/en/latest/api.html#treebeard.models.Node.add_child
@mihow
mihow / nginx.conf
Created May 3, 2020 01:45
Multi RTMP proxy
worker_processes auto;
rtmp_auto_push on;
events {}
rtmp {
server {
listen 1935;
listen [::]:1935 ipv6only=on;
application live {
live on;
@mihow
mihow / pytorch_utils.py
Last active January 23, 2022 03:45
PyTorch model to JIT / TorchScript
import os
import time
import pathlib
import tarfile
import tempfile
import torch
PROJECT_PATH = pathlib.Path(os.environ.get("PROJECT_PATH", "."))
@mihow
mihow / ssh-agent-example.sh
Last active January 26, 2022 03:53
Using SSH agent forwarding & bastion server / jump box
# Start SSH agent
eval $(ssh-agent)
# Add specific key
ssh-add ~/.ssh/butterfly.pem
# Add default key (if needed for GitHub, etc)
ssh-add
# SSH config entries
@mihow
mihow / install_docker.sh
Last active July 8, 2022 00:07
Install Docker on Ubuntu (Tested on 20.04 LTS Focal)
#! /bin/bash
set -o errexit
set -o nounset
set -o xtrace
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
@mihow
mihow / python_logging.py
Last active August 23, 2022 00:06
Example python logging configs
"""
This works when running code as script, module and with doctests.
Also sets the log level for imported packages like requests.
python -m mymodule.myfile
python mymodule/myfile.py
python -m unittest mymodule/myfile.py
"""
import logging
@mihow
mihow / get_table_sizes.sql
Created January 28, 2023 00:11
PostgreSQL - Get size of all tables
SELECT *, pg_size_pretty(total_bytes) AS total
, pg_size_pretty(index_bytes) AS index
, pg_size_pretty(toast_bytes) AS toast
, pg_size_pretty(table_bytes) AS table
FROM (
SELECT *, total_bytes-index_bytes-coalesce(toast_bytes,0) AS table_bytes FROM (
SELECT c.oid,nspname AS table_schema, relname AS table_name
, c.reltuples AS row_estimate
, pg_total_relation_size(c.oid) AS total_bytes
, pg_indexes_size(c.oid) AS index_bytes