Skip to content

Instantly share code, notes, and snippets.

View themorgantown's full-sized avatar

Daniel themorgantown

View GitHub Profile
@themorgantown
themorgantown / mysql_splitter_tool.py
Last active September 17, 2024 17:15
given a HUGE sql export, this script will split it up into individual tables and generate import statements for each table, like: mysql -u dbusername -p'dbpassword' database_name < table1
# usage:
# python3 splitter.py database_name dbusername dbpassword
import sys
import os
import re
import logging
def main():
@themorgantown
themorgantown / mullvadbase.mobileconfig
Created September 6, 2024 14:11
Mullvad Base DNS server mobileconfig
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>DNSSettings</key>
<dict>
<key>DNSProtocol</key>
@themorgantown
themorgantown / minify_apple_contacts_export.py
Created June 27, 2024 18:44
keeps name, tel, email, and address.
import vobject
import logging
from tqdm import tqdm
def minimize_vcf(input_file, output_file, fields_to_keep=None):
if fields_to_keep is None:
fields_to_keep = ['n', 'fn', 'tel', 'email', 'adr']
fields_to_keep = [field.lower() for field in fields_to_keep]
import http.server
import ssl
import socket
import os
import subprocess
HOST = f"{socket.gethostname()}"
PORT = 443
CERT_FILE = 'self-signed.cert'
KEY_FILE = 'self-signed.key'
@themorgantown
themorgantown / localserver.sh
Last active June 14, 2024 19:58
On a MAC: Loads an SSL server using a self-signed URL on your local machine using the URL: yourcomputershostname.local served from the folder: ~/Desktop/document/ - first run: chmod +x localserver.sh so this file is executable. Python only version: https://gist.github.com/themorgantown/ad592aad05e29d0d69394daa4342447d
#!/bin/bash
# Install mkcert if not already installed
if ! command -v mkcert &> /dev/null
then
echo "mkcert not found. Installing mkcert..."
brew install mkcert
mkcert -install
fi
@themorgantown
themorgantown / laser_pointed_from_the_moon.py
Last active April 2, 2024 01:56
You're standing on the moon, and you locked a laser into a tripod and pointed it at the Earth's equator. What shape does your laser make across the earth as the moon orbits the Earth? Taking into account the moon's wobble, libation, and eccentricities, this draws a wobbly line up and down the equator about 10% of the earth's height (I think).
# pip install matplotlib astropy jplephem
from astropy import units as u
from astropy.time import Time
from astropy.coordinates import solar_system_ephemeris, get_body, EarthLocation, GeocentricTrueEcliptic
import numpy as np
import matplotlib.pyplot as plt
# Ensure astropy.units is correctly imported and used
initial_time = Time('2019-01-01 00:00:00', scale='utc')
@themorgantown
themorgantown / .htaccess
Last active February 6, 2024 16:08
Show an emoji of the Moon based on the current date (works well with Sendy on a PHP server). An example of using this in a sendy template: `https://example.com/moonphase/moonphase/[currentmonthnumber]-[currentdaynumber]-[currentyear].png` Requires png files in the moon_phases directory with these filenames: waning_crescent.png first_quarter.png …
# place this in the folder 'moonphase' at the top level directory to load
# https://example.com/moonphase/moonphase/02-03-2024.png
RewriteEngine On
# Check if mod_rewrite is enabled
<IfModule mod_rewrite.c>
# Rewrite only if the request is for a moon phase image
RewriteRule ^moonphase/([0-9]{2})-([0-9]{2})-([0-9]{4})\.png$ moonphase.php?month=$1&day=$2&year=$3 [L,QSA]
</IfModule>
// run on scene load....
// Function to update and set up the checkbox
function setupAutoPlayToggle() {
var checkBox = document.getElementById('autoPlayToggle'); // Get the checkbox element
if (checkBox) {
var autoPlayEnabled = localStorage.getItem('autoPlayEnabled') === 'true'; // Check if auto play is enabled
checkBox.checked = autoPlayEnabled; // Set the checkbox state based on the auto play status
checkBox.addEventListener('change', function() { // Add event listener for checkbox change
localStorage.setItem('autoPlayEnabled', this.checked); // Update the auto play status in local storage
@themorgantown
themorgantown / ttf_to_svg.py
Last active December 14, 2023 20:25
Get SVGs of every glyph in every TTF, organized into folders
# start with brew install fontforge
import fontforge
import os
import re
def sanitize_filename(name):
"""Sanitize the glyph name to be safe for filenames."""
return re.sub(r'[\\/*?:"<>|]', '_', name)
<?php
$upload_mb = upload_mb();
/**
* Calculate the maximum file upload size
*
* @return string Formatted size string
*/
function upload_mb() {
$max_upload = parse_size(ini_get('upload_max_filesize'));