Skip to content

Instantly share code, notes, and snippets.

View mbutler's full-sized avatar
🇦🇶
Exploring

Matthew Butler mbutler

🇦🇶
Exploring
View GitHub Profile
@mbutler
mbutler / pyxelAPI.md
Created January 3, 2024 20:48
Pyxel robot dog python commands
Command Description Example Usage
Backward Moves a user defined distance backward. pyxel.Backward(6,0,0)
Chase Tail Chases wagging tail in a circle a user defined direction. pyxel.ChaseTail(1)
Dance PYXEL shows off its dance moves. pyxel.Dance()
Delay Code pauses for a user defined amount of time. pyxel.Wait(1)
Eyes User defines PYXEL's emotion for one or both eyes.
@mbutler
mbutler / santas_cookies.md
Created December 23, 2023 19:46
Santa's Official Cookie. The official Christmas cookie of the North Pole

Ingredients

Cookies

  • 2 and 1/4 cups (281g) all-purpose flour (spooned and leveled), plus more as needed for rolling and work surface
  • 1/2 teaspoon baking powder
  • 1/4 teaspoon salt
  • 3/4 cup (12 Tbsp; 170g) unsalted butter, softened to room temperature
  • 3/4 cup (150g) granulated sugar
  • 1 large egg, at room temperature
  • 2 teaspoons pure vanilla extract
@mbutler
mbutler / maxattribute.py
Created December 23, 2023 16:07
generate 10 million D&D character attribute sets and report the highests
import random
def roll_4d6_drop_lowest():
"""Roll 4d6 and return the sum of the highest three rolls."""
rolls = [random.randint(1, 6) for _ in range(4)]
return sum(sorted(rolls)[1:]) # Sum the three highest rolls
def generate_character_stats():
"""Generate a set of 6 character stats."""
return [roll_4d6_drop_lowest() for _ in range(6)]
@mbutler
mbutler / words.txt
Last active December 26, 2023 14:32
words
viator
saudade
hygge
peripatetic
taciturn
vigesimal
gadabout
piquant
caesura
elide
@mbutler
mbutler / numogram.py
Last active October 15, 2023 23:50
Unleashing the Numogram
from itertools import combinations_with_replacement
class Numogram:
def __init__(self):
self.init_zones()
self.syzygies = self.calculate_syzygies()
self.currents = self.calculate_currents()
self.gates = self.calculate_gates()
self.regions = self.calculate_regions()
@mbutler
mbutler / new_calendar.py
Created October 9, 2023 01:17
Convert date to fictional 13 month year date
from datetime import datetime
def real_to_alternate(date_str):
# List of alternate month names
alt_month_names = [
"Stellary", "Luminar", "Nebulo", "Solara",
"Aqueon", "Terralus", "Venton", "Caelis",
"Ignisar", "Vivary", "Ombro", "Mystis", "Etheron"
]
@mbutler
mbutler / color_encoder.py
Created October 2, 2023 02:13
Use LEGO pieces to encode information
class ColorCode:
def __init__(self):
self.COLORS = {
"Aqua": 0,
"Black": 1,
"Blue": 2,
"Brown": 3,
"Gray": 4,
"Green": 5,
"Orange": 6,
@mbutler
mbutler / color_encoder.py
Last active October 2, 2023 01:46
Using lego pieces on a board to encode game state
class ColorCode:
def __init__(self):
self.COLORS = {
"Aqua": 0,
"Black": 1,
"Blue": 2,
"Brown": 3,
"Gray": 4,
"Green": 5,
"Orange": 6,
@mbutler
mbutler / scrapeuni.py
Created September 27, 2023 16:30
Scrape the U directory
import requests
from bs4 import BeautifulSoup
import csv
import os
import argparse
def fetch_and_parse(url):
response = requests.get(url)
if response.status_code != 200:
return None
@mbutler
mbutler / convert_dates.py
Created July 24, 2023 17:30
convert irregular date formats in the Morris database to ISO 8601 compliant entries
import pandas as pd
import dateparser
def convert_date(date_str):
# Remove any trailing characters like (?), (meeting minutes), etc.
clean_str = ''.join(ch for ch in date_str if ch.isalnum() or ch.isspace())
# Map seasons to a specific sub-year grouping
seasons = {
"Spring": "-21",