Skip to content

Instantly share code, notes, and snippets.

View adamabernathy's full-sized avatar
👋

Adam C. Abernathy adamabernathy

👋
View GitHub Profile
@adamabernathy
adamabernathy / css_to_json.py
Last active September 5, 2024 15:57
Quick and dirty CSV to JSON converter. Does not chunk files, so really large files might be an issue depending on available memory.
import csv
import json
import argparse
def convert_csv_to_json(input_file, output_file, verbose=False):
print(f"Converting {input_file} >>> {output_file}")
output_dict = { "rows": [], "sourceFile": input_file }
@adamabernathy
adamabernathy / aws-ecr-auth.sh
Last active August 24, 2020 21:19
Bash/Sh AWS ECR auth script
#!/bin/sh
# Generic AWS ECR authentication script
REGION=us-east-1
ACCOUNT_ID=$(aws sts get-caller-identity --output text --query Account)
aws ecr get-login-password --region $REGION \
| docker login \
--username AWS \
--password-stdin $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com
@adamabernathy
adamabernathy / merge_dict.py
Created April 14, 2020 15:52
Safely merge two Python dictionaries
# coding: utf-8
def merge_dict(dict1, dict2):
res = {**dict1, **dict2}
return res
@adamabernathy
adamabernathy / ec2-iam-s3.yaml
Created June 25, 2019 14:13
Create EC2 with IAM role that can read S3 bucket.
---
AWSTemplateFormatVersion: '2010-09-09'
Description: >-
Creates EC2 instance with an IAM role that can access an S3 Bucket (also created).
Parameters:
KeyPairName:
Description: EC2 Instance SSH Key
Type: AWS::EC2::KeyPair::KeyName
@adamabernathy
adamabernathy / git-and-gpg.md
Created April 23, 2019 19:23
Git and GPG

GitHub and GPG Signing

Create GPG key pair

gpg --full-generate-key

Assign Key to GH

gpg --list-secret-keys --keyid-format LONG
@adamabernathy
adamabernathy / remove-all-service-workers.js
Created November 12, 2018 01:32
Removes all services workers from browser via JS
navigator.serviceWorker.getRegistrations().then(registrations => registrations.map(k => k.unregister()));
@adamabernathy
adamabernathy / alpha_columns.py
Last active August 12, 2018 02:54
Convert Excel columns to index and back
# coding: utf-8
'''Excel Column Conversion, (C) 2018 Adam C. Abernathy, Lic. MIT'''
def excel_alpha_to_index(column_name, alphabet='abcdefghijklmnopqrstuvwxyz'):
return sum([(alphabet.find(column_name[-i - 1].lower()) + 1) * pow(len(alphabet), i)
for i in reversed(xrange(len(column_name)))])
def excel_index_to_alpha(postion, alphabet='abcdefghijklmnopqrstuvwxyz'):
column_name = ''
while postion > 0:
@adamabernathy
adamabernathy / parsecli.py
Last active March 17, 2018 16:55
Simple CLI arguments parser
'''Simple CLI arguments parser
Requires the `--key=value` format. Defaults to True if value is omitted.
(C) 2018 Adam C. Abernathy, [email protected]
'''
import sys
def coerce_value(value=None):
@adamabernathy
adamabernathy / removing-js-labeled-statement-pt-2.js
Last active February 9, 2018 16:54
Removing JS "labelled" statement part 2
// A bit cleaner now
let keepRunning = true;
for (let i = 0, li = 5; keepRunning && i < li; i++) {
for (let j = 0, lj = 5; keepRunning && j < lj; j++) {
for (let k = 0, lk = 5; keepRunning && k < lk; k++) {
if (k == 3) {
keepRunning = false;
break;
}
for (let m = 0, lm = 5; m < lm; m++) {
@adamabernathy
adamabernathy / removing-js-labeled-statement-pt-1.js
Last active February 9, 2018 16:54
Removing JS "labelled" statement part 1
'use strict';
// The basic idea
let keepRunning = true;
for (let i = 0, li = 5; i < li; i++) {
if (!keepRunning) break;
for (let j = 0, lj = 5; j < lj; j++) {
if (!keepRunning) break;
for (let k = 0, lk = 5; k < lk; k++) {