Skip to content

Instantly share code, notes, and snippets.

@jecolasurdo
jecolasurdo / replacestuff.go
Created October 27, 2017 16:57
Needed to make some replacements that were a bit much for sed, and didn't want to use awk, perl, or python.
package main
import (
"fmt"
"io/ioutil"
"log"
"os"
"path/filepath"
"regexp"
"strings"
@jecolasurdo
jecolasurdo / HydGraphPrograms.lsp
Created November 19, 2017 23:58
Hydraulic Calculation Programs for Water Pumps
;;THE FOLLOWING COMMANDS, 'SUPPLY', 'SYSTEM', AND 'PT' ARE COMMANDS TO DRAW THE HYDRAULIC GRAPH
;;--------------------
;;;supply and system programs for the supply curve graph 2/19/99
(setq qsc (getvar "userr1"))
(setq pc (getvar "users1"))
(defun c:supply (/ lc pt3 pt1 pt2 q2 q1 q sp ps)
(graphscr)
(setvar "cmdecho" 0)
(setvar "plinewid" 0.2)
@jecolasurdo
jecolasurdo / elevations.lsp
Created November 20, 2017 00:03
Calculate elevations above grade along lines that are not orthogonal to the slope of the deck or roof.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;Elevation command
;;Type EV to run this command
;;Triangulates the elevation of a point between two other points of known elevations
;;useful for calculating BOD and other deck elevation related measurements
;;Type "ELEVATION" to run this routine
;;1/27/2008 Written by Joe C.
;;1/29/2008 streamlined data entry to require less keyboard usage
;;2/15/2008 streamlined data entry some more (added loop through unknown point entry)
;;2/20/2008 changed to accept architectural input rather than just decimal feet
@jecolasurdo
jecolasurdo / must.go
Last active April 4, 2018 21:51
Must. A 30 minute rabbit hole of interesting non-performant and opaque code.
// Must executes the supplied function and panics if the function returns an error.
//
// In practice, this approach to forcing a panic should be avoided because it's non-performant,
// and does nothing to increase code clarity. But it was a fun little rabbit hole to wander down.
// It's also a nice little example of how to call a function via reflection.
//
// supported type for f is
// func(T) error
// where `T` is the underlaying type for `input`
//
@jecolasurdo
jecolasurdo / handy ccv2 stuff
Last active June 11, 2018 05:23
Handy snippets to use when working with ccv2
# remove all files below a generated directory except .gitkeep
find . -type f -regex .*generated/.* -not -regex .*\.gitkeep -delete
# run all unit tests excluding integration tests and only show failures
go test -count=1 -race $(go list ./... | grep integrationtest -v) 2>/dev/null | grep FAIL
# run all unit tests with coverage and list them from highest coverage to lowest
for p in $(go list ./... | grep integrationtest -v); do go test -count=1 -cover -race $p; done | grep \? -v | sort -k 4
# list log group ARNs for CCV2
#!/bin/bash
filter="$1"
if [ -z "$filter" ]; then
echo "Please supply a filter value."
exit 1
fi
groupNames=$(aws logs describe-log-groups \
@jecolasurdo
jecolasurdo / pair.go
Created September 15, 2018 00:34
pairing function
func pairingForInts(k ...int64) int64 {
if len(k) == 0 {
return -1
}
if len(k) == 1 {
return k[0]
}
var p float64
@jecolasurdo
jecolasurdo / README.md
Last active June 18, 2021 18:17
Rotate your aws access keys.

Utility for rotating those pesky AWS access keys

Important: Only supports the default profile! If you have more than one profile setup via aws configure, this script is only capable of targetting the default profile. Other profiles are ignored.

To install and run:

  1. Copy the contents of install-and-run.sh to your terminal and press enter.
  2. Bash will download, install, and start the script.
  3. The script will prompt you for your AWS username (i.e. "Joe")
@jecolasurdo
jecolasurdo / download_all_scripts.py
Last active May 2, 2021 07:05 — forked from nchibana/download_all_scripts.py
Scrape IMSDB movie scripts
import os
import requests
import random
from datetime import datetime
from urllib.parse import quote
from bs4 import BeautifulSoup
BASE_URL = 'http://www.imsdb.com'
@jecolasurdo
jecolasurdo / git-bump
Created September 19, 2021 03:06
git command for incrementing semver tags
#!/usr/local/bin/python3
import operator
import re
import subprocess
import sys
# Slightly modified from the semver.org spec (see note below).
# https://regex101.com/r/Ly7O1x/3/