Skip to content

Instantly share code, notes, and snippets.

@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 / 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 / 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 / elasticsearch6_fuzzy.py
Last active April 7, 2021 10:56
Enable fuzziness for all Elasticsearch plaintext queries in Wagtail
"""Elasticsearch backend that enables fuzzy search to all plaintext queries."""
from wagtail.search.backends.elasticsearch6 import (Elasticsearch6SearchBackend,
Elasticsearch6SearchQueryCompiler)
class ElasticsearchQueryCompilerWithFuzziness(Elasticsearch6SearchQueryCompiler):
"""
Copy of Elasticsearch6SearchQueryCompiler class with a modified default query.
Adds the "fuzziness" parameter to all queries so that we can return inexact
matches for misspellings, etc.
@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 / 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 / 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 / get-scipy-stack-for-aws-lambda.sh
Created January 29, 2016 02:32
Get the SciPy stack for deployment to AWS Lambda
#! /usr/bin/env bash
# Install the SciPy stack on Amazon Linux and prepare it for AWS Lambda
yum -y update
yum -y groupinstall "Development Tools"
yum -y install blas --enablerepo=epel
yum -y install lapack --enablerepo=epel
yum -y install atlas-sse3-devel --enablerepo=epel
yum -y install Cython --enablerepo=epel
@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 / 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']]