Skip to content

Instantly share code, notes, and snippets.

View sloanlance's full-sized avatar
Certified GitHub Pro

Mr. Lance E Sloan sloanlance

Certified GitHub Pro
View GitHub Profile
@sloanlance
sloanlance / unicode-variables.py
Last active December 20, 2023 02:29
Python's handling of Unicode-character variables is surprising!
𝐀 = {'😀': 5}
for ℹ︎ in range(20):
# print(i, ℹ︎, i == ℹ︎) # NameError: name 'i' is not defined.
for _,__ in 𝐀.items():
if __ == ℹ︎:
print(_, ℹ︎)
print(𝐀) # Prints dictionary in 𝐀
print(A) # Also prints dictionary in 𝐀!
print(𝐀 is A) # True
@sloanlance
sloanlance / yq Notebook.md
Last active September 29, 2023 14:35
Useful notes about using yq

yq Notebook

Useful notes about using yq

  1. Display the path to each value in a YAML file
    $ cat << EOF | yq e '.. | select(. == "*") | {(path | join(".")): .} ' -
    > a:
    >   b: foo

> c: bar

@sloanlance
sloanlance / bgsounds.sh
Last active March 5, 2024 20:06
bgsounds.sh: Toggle macOS Background Sounds on or off.
#!/bin/sh --
# Toggle macOS Background Sounds on or off.
#
# See the System Settings panel for Accessibility > Audio to change settings
# like the sound played, volume level, and automatic stop.
# `read` returns an integer, but…
if [ $(defaults read com.apple.ComfortSounds 'comfortSoundsEnabled') = 0 ]
then
#!/bin/sh
awk 'function wl() {
rate=64000;
return (rate/160)*(0.87055^(int(rand()*10)))};
BEGIN {
srand();
wla=wl();
while(1) {
wlb=wla;
wla=wl();
@lsloan
lsloan / icalendarextract.ipynb
Last active April 7, 2021 20:46
icalendarExtract.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@lsloan
lsloan / recursiveFormat.py
Last active October 16, 2020 18:08 — forked from sloanlance/recursiveFormat.py
`recursiveFormat()` – Recursively apply `string.format()` to all strings in a data structure.
def recursiveFormat(args, **kwargs):
"""
Recursively apply `string.format()` to all strings in a data structure.
This is intended to be used on a data structure that may contain
format strings just before it is passed to `json.dump()` or `dumps()`.
Ideally, I'd like to build this into a subclass of `json.JsonEncoder`,
but it's tricky to separate out string handling in that class. I'll
continue to think about it.
@sloanlance
sloanlance / recursiveFormat.py
Last active November 25, 2021 03:27
`recursiveFormat()` – Recursively apply `string.format()` to all strings in a data structure.
def recursiveFormat(args, **kwargs):
"""
Recursively apply `string.format()` to all strings in a data structure.
This is intended to be used on a data structure that may contain
format strings just before it is passed to `json.dump()` or `dumps()`.
Ideally, I'd like to build this into a subclass of `json.JsonEncoder`,
but it's tricky to separate out string handling in that class. I'll
continue to think about it.
@sloanlance
sloanlance / ngrok_public_url.sh
Last active August 25, 2020 18:00 — forked from lsloan/ngrok_public_url.sh
Get the local ngrok public URL, which includes the hostname, extracted using jq
#!/bin/sh --
# Get the local ngrok public URL, which includes the hostname, extracted using jq
# Inspiration: https://gist.github.com/rjz/af40158c529d7c407420fc0de490758b#gistcomment-2594627
curl --silent http://127.0.0.1:4040/api/tunnels | jq -r '.tunnels[0].public_url'
@lsloan
lsloan / ngrok_public_url.sh
Last active August 25, 2020 18:00
Get the local ngrok public URL, which includes the hostname, extracted using jq
#!/bin/sh --
# Get the local ngrok public URL, which includes the hostname, extracted using jq
# Inspiration: https://gist.github.com/rjz/af40158c529d7c407420fc0de490758b#gistcomment-2594627
curl --silent http://127.0.0.1:4040/api/tunnels | jq -r '.tunnels[0].public_url'
@sloanlance
sloanlance / durationToSeconds.py
Last active November 25, 2021 03:27
Convert ISO 8601 durations to seconds.
import re
from functools import reduce
import string
def durationToSecondsRegex(duration: str) -> int:
"""
Parse duration string; return integer number of seconds.
For example, the duration string "1h2m3s" (1 hour, 2 minutes, 3 seconds)
would return 3723 seconds.