Skip to content

Instantly share code, notes, and snippets.

@greg76
greg76 / adnd.py
Last active January 14, 2026 19:40
Simple example for AD&D classes implemented in Python using abstract classes and properties
from abc import ABC, abstractmethod
from dataclasses import asdict, dataclass
class Character(ABC):
@dataclass(slots=True)
class Stats:
STR: int
DEX: int
@greg76
greg76 / signal-noise.md
Created July 19, 2025 09:43
Prompted ChatGPT 4o to write an excerpt about demoscene competitions in cyberpunk style

EXCERPT: Signal//Noise

by [Your Name]

The dome of the Grand Assembly cracked with strobes and pulses of pure algorithmic light. Hexsound tunneled through the crowd like a virusโ€”compressed, modulated, fractal-burst into flesh. In the center pit, on a circular dais of jury-rigged silicon and scrapmetal chrome, the Sceners were at war.

"Sectorjamโ€™s up," said Ryn, thumb twitching on her neural-ink interface. She sat in the mezzanine shadows above the compo pit, visor lenses flickering with debug streams. โ€œRunning custom synthmods on a gutted Triarc Z80. Heโ€™s bending opcode like origami.โ€

Below, Sectorjamโ€”neon mohawk, skin like a failed BIOS bootโ€”drove his fingers across a ghostboard, each tap spitting machinecode into a corrupted 8-bit memory space. His demo was alive: vector forests blooming in real-time, synced to audio generated from nothing but electromagnetic ripple and clever abuse of voltage.

โ€œWatch the sync chain,โ€ muttered Kaz, Rynโ€™s partner, hunched beside her, his spinal jack trailing

@greg76
greg76 / helloworld.asm
Created June 29, 2025 12:42
C64 assembly hello world
;
; assembly example to write a message on the Commodore 64 screen
;
; address of the basic loader. the RUN command is looking for the first instruction here.
; the assembly code should be compiled to start here as well, so it can be run with a sys command
*=$0801
; this is the basic loader, this is mimicing of jumping in to the assembly code with a sys command
!byte $0c,$08,$b5,$07,$9e,$20,$32,$30,$36,$32,$00,$00,$00
@greg76
greg76 / boids.py
Last active December 5, 2023 10:55
simple demonstration of boids
"""\
Boids is an artificial life program, which simulates the flocking behaviour of birds, and related group motion.
Some resources I'd recommend if you wanted to learn more about boids:
* https://en.wikipedia.org/wiki/Boids
* https://people.ece.cornell.edu/land/courses/ece4760/labs/s2021/Boids/Boids.html
* http://www.red3d.com/cwr/boids/
This is my quick excercise to make a simplified, 2d, retro inspiried implementation.
"""
@greg76
greg76 / race.py
Created November 4, 2022 12:46
emojie animals racing in the terminal
import os
import time
import random
animals = "๐Ÿ…๐Ÿ†๐Ÿฆ“๐Ÿฆฃ๐Ÿ˜๐Ÿฆ›๐Ÿฆ๐Ÿช๐Ÿฆ’๐Ÿฆ˜๐Ÿฆฌ๐Ÿƒ๐Ÿ‚๐Ÿ„๐ŸŽ๐Ÿ–๐Ÿ๐Ÿฆ™๐Ÿ๐ŸฆŒ๐Ÿ•๐Ÿˆ๐Ÿ“๐Ÿ‡๐Ÿฆ"
#animals = "๐Ÿถ๐Ÿฑ๐Ÿญ๐Ÿฐ๐ŸฆŠ๐Ÿป๐Ÿผ๐Ÿฆ๐Ÿฏ๐Ÿจ๐Ÿป๐Ÿฎ"
width = os.get_terminal_size().columns - 2
pos = [width] * len(animals)
@greg76
greg76 / bootstrap.sh
Last active December 5, 2023 10:27 — forked from GrfxGuru/bootstrap_mac.sh
Bootstrap for setting up a new macOS machine
#!/usr/bin/env bash
#
# Bootstrap script for setting up a macOS machine
#
# Requires xcode and tools!
xcode-select -p || exit "XCode must be installed! (use the app store)"
echo "Starting bootstrapping"
@greg76
greg76 / panic.py
Created March 31, 2022 15:18
check the time of the last kernel panic on you mac
import os
import datetime
with os.popen("nvram -p") as out:
ts_line = next((line for line in out.readlines() if line.startswith("panicmedic-timestamps")), None)
if ts_line:
ts_hex = ts_line.split("\t")[-1]
ts_int = int(ts_hex, 16)
ts = datetime.datetime.fromtimestamp(ts_int // 1000000)
print(f"Last kernel panic: {ts}")
@greg76
greg76 / wordle.py
Last active February 14, 2022 09:42
what are the best words to start wordle with?
import collections
with open("words.txt") as f:
# let's read the words from the file, but ignore anything that ends with s
# just to remove plurals
words = [line.strip() for line in f.read().splitlines() if line[4] != "s"]
# how often the different letter occur?
occurances = collections.Counter()
for word in words:
@greg76
greg76 / homebrew-top.py
Last active September 14, 2021 18:09
fastest growing homebrew packages
import locale
import requests
import tabulate
locale.setlocale(locale.LC_ALL, "en_US")
# available snapshots: 30, 90, 365 days
data_ranges = {"new": 30, "old": 90}
@greg76
greg76 / tilted-chessboard.py
Last active May 18, 2020 06:02
recreated a tiny effect in python. for the lulz.
import pyxel
class Intro:
def __init__(self):
pyxel.init(160, 120, caption="Greg was here")
self.timer = 0
pyxel.run(self.update, self.draw)
def update(self):