Skip to content

Instantly share code, notes, and snippets.

@lelandbatey
lelandbatey / list_all_contributors.sh
Created Jul 13, 2021
Record all contributors to each Git repository in a file tree
View list_all_contributors.sh
#!/bin/bash
# list_all_contributors.sh ROOT_SEARCH_PATH
#
# Usage: Finds all Git repositories in ROOT_SEARCH_PATH and records all
# contributors to each repo, each repo getting one file, with these
# contributor files saved to the current directory.
# Copyright (C) 2021 Leland Batey
#
@lelandbatey
lelandbatey / index.html
Created Jun 2, 2021
Color clock - represent the hands of a clock as the "color edges" of a pie chart
View index.html
<!DOCTYPE html>
<html lang="en">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<!--<script src="timemachine.js"></script>-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment-with-locales.min.js"></script>
<body style="margin: 0;">
<canvas id='canvas' width='1000' height='1000'></canvas>
</body>
View LFB_beaconed_assembly_layout.factorio
0eNqlmc2PojAUwP8V0rMYKP2g3nYOe9pkL3vbTDagHW0GgdCyGWPmf9+io+M6IO1rYmJUeL/33ffkiMqql22naoNWR7SRet2p1qimRiv0a6d0ZF9mJ6Oy0GodGVXJoqxkVBWHpjdR8xIVWst9WR2ifbHeqVrqqNenS16aLiqqKnpV9UYPV1oRMlp3shjEL9ECqXVTa7T6fURabeuiGjQwh1ZatDJyb6+oi/3wqZSFvRS921vqjXxDq/R9MXvTh2Kq3sYfqsXZjQj8/rxAsjbKKHlW4vTh8Kfu96XsLOMqSb61ndQ67u2d3bZr7HtcyspYVttodfbWEVmhhC3pAh3QKs5SvKSWtlGdXJ+vIIuronXbGzTYcMfEEGYexswATJqEMcl9aL9aRa6EJD8Rhujq4VfdSrmJ982mr4aQ2kiOEOg8gYcR2CyBpmEEPk8I9FLuFQcKIIgrQfelNqfaH4vFhcEsoZZquyubvhvqkuDnEbFpElYpCZvOWtvYJtI2/doTTFfUum06M8UUj5hjDBzE4E6MwJoHeo945TMk21Ia1rQTAjKMBYWMOoWMByY8BbTp9LM/2NJdv8aq1rIz9qeHqMGJY9IExAThFJzpEzUJTHWI33Dq7Ldb1ITf8GdHaFUrY9PEZ+1HpGHPtMKfnaDt9+1jicRBnt/JjgE1jql7UvJ71I36bEw2oJLZA8aoi3gQI3Ni5I/H4IdlNhMUMhoU8V+OPp6F8HieZ8mcDDwvI/U6YyD5l2GPFMdCQBBZ4DGWQvYA4jEyA+3yKN2bhEwmYu0zgQMV5qDWm04onHskJ1DhsDP2AvUcgEgSMABhkbu0NJJ6lR0DOI9gr2UFC36/rIixXYVkQd5x2hoICRoPxygOWzwNMsxpVSEs0DAOSmgeNDUC3ZkHQmGmCkCLc8xKmng1PEjNUr+2kEEQOGBgw4I4eSrsxMeCQmJPCWC/O7PGpNHAsweyalEGnnRns2F00qUcsNtN+yx33r+sDIc8El4VBykHlgD2rwtqZv9iaVC
@lelandbatey
lelandbatey / example_motor_inmemory.py
Last active Mar 1, 2021
MongoDB, Motor, Tornado web server, all in Python; for testing
View example_motor_inmemory.py
# In order to test an upgrade from Motor 1.x to Motor 2.1, we want to have
# automated tests verifying our existing MongoDB scaffolding isn't using any of
# the deprecated/removed features of PyMongo/Motor. Since Python is dynamic,
# and Motor is ESPECIALLY dynamic, using simple static analysis (such as with
# Vulture) can't give us accurate results. So instead, we must write unit tests
# which exercise the methods of common_python.mongo.Client, and by exercising
# them, verify that the fields/methods of the underlying MotorClient are being
# called correctly.
#
# However, we also want our unit tests to be _truly_ idempotent AND to test
@lelandbatey
lelandbatey / README.md
Last active Feb 8, 2021 — forked from mrbar42/README.md
bash scripts to create VOD HLS stream with ffmpeg almighty (tested on Linux and OS X)
View README.md

running:

bash create-vod-hls.sh beach.mkv

will produce:

    beach/
      |- playlist.m3u8
      |- 360p.m3u8
@lelandbatey
lelandbatey / pprint_number.py
Last active Jan 16, 2021
Pretty print large base 10 numbers and base 2 numbers
View pprint_number.py
# Take a very large number and pretty print it in triplets of 3 digits, each triplet separated by a space.
def pnum_spc(n): print(' '.join([''.join(list(str(n))[::-1][i:i+3]) for i in range(0, len(str(n)), 3)][::-1]))
# >>> pnum_spc(32 ** 13)
# 36 893 488 147 419 103 232
# Print numbers as 32-bit binary numbers w/ spaces giving 4-bit words
def pbin_spc(n): print(' '.join([''.join(list(f'{n:032b}')[::-1][i:i+4][::-1]) for i in range(0, len(f'{n:032b}'), 4)][::-1]))
# >>> "{0:032b}".format(1234)
# '00000000000000000000010011010010'
# >>> pbin_spc(1234)
@lelandbatey
lelandbatey / refresh_jumpcloud_creds.sh
Created Sep 15, 2020
Refresh local AWS creds via Jumpcloud OTP
View refresh_jumpcloud_creds.sh
#!/bin/bash
# This script runs the entire set of steps to authenticate with jumpcloud and
# refresh the temporarily stored AWS credentials.
cd "$HOME/Documents/jumpcloud_mfa/"
# Yes, the local OTP credentials on disk are encrypted with just the username of my user.
( (sleep 0.3; pkill -f "./otp.sh jumpcloud") & echo "$USER" | ./otp.sh jumpcloud-totp)
# otp.sh puts the current otp in my clipboard, so we get it into a variable using xclip
@lelandbatey
lelandbatey / held_up.py
Last active Mar 14, 2020
Show what cards you could be holding up in MTGA
View held_up.py
import itertools
import json
'''
Show the cards you could be holding up in MTGA at instant speed.
TODOs:
1. Make it color sensitive
2. Account for cards with flash
3. Make a UI (like at ALL)
@lelandbatey
lelandbatey / collection_access_tracker.py
Created Feb 5, 2020
Python class for tracking access to members of collections. Great for legacy code were we wonder "what's being accessed in this big dict and where is it being accessed?"
View collection_access_tracker.py
from __future__ import print_function
import inspect
import six
def fmt_stack(frames):
s = ""
for f in frames[::-1]:
s += "{}:{}: {}\n".format(f[1], f[2], '\\n'.join([x.replace('\n', '') for x in f[4]]))
return s
@lelandbatey
lelandbatey / histogram_timestamps.py
Last active Jul 27, 2020
A tool for viewing streams of timestamps as histograms. Uses Matplotlib and Pandas
View histogram_timestamps.py
#!/usr/bin/env python3
'''
A tool for viewing streams of timestamps as histograms.
'''
import matplotlib.pyplot as plt
from datetime import datetime
import matplotlib.dates as mdates
import pandas as pd
import itertools
import argparse