Skip to content

Instantly share code, notes, and snippets.

View kremerben's full-sized avatar
👨‍💻
tippety tap, tippety tap

Ben Kremer kremerben

👨‍💻
tippety tap, tippety tap
  • Kremer Software and Design
  • San Francisco - Oakland, CA
  • 01:16 (UTC -07:00)
View GitHub Profile
@kremerben
kremerben / case_scram.py
Created October 29, 2020 23:35
InpUT a StRINg, reTUrN a stRINg with rANDoM upPer or lOWER caSE.
def case_scram(str_):
""" inpUT a StRINg, reTUrN a stRINg with rANDoM upPer or lOWER caSE.
This was built for testing case-insensitivity.
"""
from random import choice
if not isinstance(str_, str):
return str_
return "".join(choice((c.upper(), c.lower())) for c in str_)
@kremerben
kremerben / python_lowercase_recursive.py
Last active October 23, 2020 18:22
Recursively lowercase all elements - accepts list, str, tuple, dict, set
def lowercase_everything(obj):
""" Recursively lowercase all elements - accepts list, str, tuple, dict, set """
if isinstance(obj, dict):
return {k.lower(): _lowercase(v) for k, v in obj.items()}
elif (t := type(obj)) in (list, set, tuple):
return t(_lowercase(o) for o in obj)
elif isinstance(obj, str):
return obj.lower()
return obj
@kremerben
kremerben / custom.css
Created September 3, 2020 07:17
Jupyter notebook custom css - gridlines and bkgdcolor for code in markdown block
/* Adds background gridlines for code blocks */
div.input_area {
background: repeating-linear-gradient(
to right,
transparent,
transparent 3px,
rgba(180, 180, 40, 0.2) 3px,
rgba(180, 180, 40, 0.2) 4px,
transparent 4px,
transparent calc(2.4em + 3px),
@kremerben
kremerben / morse_code_utils.py
Created June 15, 2020 08:05
Encoding and decoding morse code strings
morsecode_map = dict(a=".-",b="-...",c="-.-.",d="-..",e=".",f="..-.",g="--.",h="....",i="..",
j=".---",k="-.-",l=".-..",m="--",n="-.",o="---",p=".--.",q="--.-",r=".-.",
s="...",t="-",u="..-",v="...-",w=".--",x="-..-",y="-.--",z="--..")
def reverse_python_dict(dict_: dict) -> dict:
return {dict_[k]:k for k in dict_}
def encode_morsecode(str_: str) -> str:
@kremerben
kremerben / ECMAScript6.md
Created June 10, 2020 07:08
ECMAScript 6 Cheat Sheet

ECMAScript 6 Cheat Sheet

Arrow functions

    x => x + 1                          // similar to function(x) {return x + 1;}
    (x, y) => x + y                     // similar to function(x, y) {return x + y;}
    x => {return x + 1}

Array destructuring

@kremerben
kremerben / excel_column_letters.py
Last active January 30, 2020 22:54
Excel Column Lettering pattern (python list)
prefix_letter = ['', 'A','B','C','D','E','F','G']
next_letter = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
def excel_column_letters(columns_needed=None):
result = []
for prefix in prefix_letter:
for letter in next_letter:
result.append(prefix + letter)
if columns_needed and isinstance(columns_needed, int):
return result[:columns_needed]
@kremerben
kremerben / css-html-only-accordion-element.markdown
Last active June 10, 2020 07:05
CSS + HTML only Accordion Element

CSS + HTML only Accordion Element

Read the copy in the accordion sections for some info about how this was made.

A Pen by Ben Kremer on CodePen.

License.

@kremerben
kremerben / apartment_list_group_picker
Last active October 9, 2019 02:56
Pick a group of 3-5 people for lunch
import random
people = ['alice', 'bob', 'carl', 'dave', 'asdf', 'sdfg', 'sdffg', 'erty', 'ertry']
people = [1,2,3,4,5,6,7,8,9]
def make_groups(people):
result_groups = []
current_group = []
@kremerben
kremerben / adrdash_bash_aliases
Created October 31, 2018 18:26
Function to add to ~/.bash_aliases to update the ADR dashboard
adrdash ()
{
networksetup -connectpppoeservice "L2TP VPN";
open smb://username:password@192.168.25.13/Share/;
workon adr-dashboard;
git status;
git diff;
read -r -p "Everything good? Continue? [y/N] " response;
if [[ "$response" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
echo 'Continuing\n';
@kremerben
kremerben / bash_aliases.txt
Last active March 2, 2022 23:16
current ~/.bash_aliases - August 28, 2017
alias leetcode='cd ~/Dropbox/\ LEETCODE/ && jupyter notebook'
alias lc='leetcode'
alias leet='leetcode'
alias goopencv='deactivate || : && cd ~/Dropbox/\ CLASSES/LearnOpenCV_2021/ && source .venv/bin/activate && jupyter notebook'
#Energy Solution specific aliases
alias activate='source .venv/bin/activate'
alias act='activate'
alias deact='deactivate'