Skip to content

Instantly share code, notes, and snippets.

View jbrzozoski's full-sized avatar

jbrzozoski

View GitHub Profile
#!/usr/bin/env python3
from functools import lru_cache
@lru_cache(maxsize=1024)
def combinations(beads, low_points):
if low_points == 1:
return 1
return sum(combinations(n, (low_points - 1)) for n in range(0, (beads + 1)))
@jbrzozoski
jbrzozoski / git-lt
Last active January 6, 2022 14:56
Script to list annotated tags on the CLI with git in a nicely formatted manner
#!/bin/bash
# Get all the annotated tag references
refs=$(git for-each-ref --format="%(if:equals=tag)%(objecttype)%(then)%(refname:short)%(end)" refs/tags)
# Review those to find the longest reference name
refs_as_list=(${refs})
let longest_ref=0
for i in "${refs_as_list[@]}"
do
@jbrzozoski
jbrzozoski / view_textconv
Last active February 27, 2023 20:09
Script to use as a textconv tool for Ignition view.json files under git
#!/usr/bin/env python3
"""
Utility script to help diff/log Perspective view.json files under git.
The git "textconv" feature is intended to convert binary files to a
rough text approximation, so that viewing diffs or logs of those files
will provide an idea of what changed. This script can be used as a
textconv on Ignition Perspective view.json files to extract JSON-encoded
script blocks into something that almost resembles proper Python
@jbrzozoski
jbrzozoski / json2yaml
Last active January 12, 2024 20:43
Minimal JSON-to-YAML converter with smarter multi-line handling
#!/usr/bin/env python3
"""
Convert a JSON file to a YAML file
"""
import sys
import json
import ruamel.yaml as yaml