Skip to content

Instantly share code, notes, and snippets.

View patrickfuller's full-sized avatar

Patrick Fuller patrickfuller

View GitHub Profile
@patrickfuller
patrickfuller / alias_dns.py
Last active January 29, 2024 16:29
Enables local DNS resolution of Unifi aliases
"""
When run in cron, automatically adds compliant alias names to local DNS.
Use at your own risk.
Patrick Fuller, 25 June 17
"""
import re
import paramiko
import pymongo
@patrickfuller
patrickfuller / advent_of_code_2022.py
Last active December 27, 2022 04:04
Advent of Code 2022
# pylint: disable=unspecified-encoding
"""Solutions for 2022 Advent of Code puzzles.
https://adventofcode.com/2022
"""
import argparse
import functools
import itertools
import json
from queue import LifoQueue
@patrickfuller
patrickfuller / github_issues_to_csv.py
Last active November 30, 2022 10:03 — forked from unbracketed/export_repo_issues_to_csv.py
Export Issues from Github repo to CSV (API v3)
"""
Exports issues from a list of repositories to individual csv files.
Uses basic authentication (Github username + password) to retrieve issues
from a repository that username has access to. Supports Github API v3.
Forked from: unbracketed/export_repo_issues_to_csv.py
"""
import argparse
import csv
from getpass import getpass
import requests
@patrickfuller
patrickfuller / mcmaster_in_to_mm.js
Last active April 6, 2020 17:28
Converts inches to mm on McMaster's website.
$('.dx').each((i, el) => {
let val = $(el).html();
if (val.slice(-1) === '"') {
$(el).html((parseFloat(val.slice(0, -1)) * 25.4).toFixed(1) + ' mm');
}
});
@patrickfuller
patrickfuller / pre-commit
Last active September 18, 2019 16:29
SCSS compilation pre-commit hook
#!/bin/bash
# When SCSS is changed in a commit, this compiles and commits the affected css.
# This script assumes a project directory of the form:
# main.scss
# main.css
# scss
# | file_1.scss
# | ...
# | file_n.scss
@patrickfuller
patrickfuller / github_traversal.py
Created December 27, 2013 06:19
A basic graph traversal script using the Github API. Starting from a specified root-node Github user, this will traverse everyone they are following. This repeats in a breadth-first pattern until a threshold is reached.
import requests
import getpass
import sys
import json
import Queue
# This is a script, let's be lazy. We'll fill up this global and print it.
g = {"nodes": {}, "edges": []}
# And here's the cutoff criterion
MAX_NODES = 1000
@patrickfuller
patrickfuller / grid_maker.py
Last active October 10, 2018 13:40
Grid Maker
"""
Create a custom grid-paper design as a minified vector image.
This uses a unique adaptation of "stroke-dasharray" to create the grid
pattern in a very small svg.
Usage:
python grid_maker.py > grid.svg
python grid_mater.py --help
@patrickfuller
patrickfuller / comparison.py
Last active May 21, 2017 17:39
Compares tornado.auth.GoogleMixin with tornado.auth.GoogleOAuth2Mixin. The latter is required after google's OAuth updates.
"""
A webserver to test Google OAuth in a couple of scenarios.
"""
import argparse
import time
import tornado.ioloop
import tornado.web
import tornado.auth
import tornado.gen
@patrickfuller
patrickfuller / Fe-MIL-100.cif
Last active January 4, 2016 04:39
A really large P1 crystal.
# CIF file generated by openbabel 2.3.90, see http://openbabel.sf.net
data_I
_chemical_name_common ''
_cell_length_a 73.3402
_cell_length_b 73.3402
_cell_length_c 73.3402
_cell_angle_alpha 90
_cell_angle_beta 90
_cell_angle_gamma 90
_space_group_name_H-M_alt 'P 1'
@patrickfuller
patrickfuller / texter.py
Created January 12, 2014 21:24
Texting from your computer in Python.
import smtplib
from email.mime.text import MIMEText
# Message to be sent
message = MIMEText("Hello, texting!")
# Sending email username/password and receiving phone number
email_username = ""
email_password = ""
phone_number = ""