Skip to content

Instantly share code, notes, and snippets.

Avatar

René Dudfield illume

View GitHub Profile
@illume
illume / decision_tree.py
Created Jun 3, 2020
Decision trees in python using recursion and eval.
View decision_tree.py
# Decision trees in python using recursion and eval.
TREE_SIMPLE = {
"expression": 'state["x"] > 1',
True: {"result": "b"},
False: {"result": "a"},
}
def decide(state, node):
return (
View install_python.ps1
# Install specified Python version.
# Install only if:
# Our current matrix entry uses this Python version AND
# Python version is not already available.
# from https://raw.githubusercontent.com/matthew-brett/multibuild/11a389d78892cf90addac8f69433d5e22bfa422a/install_python.ps1
$py_exe = "${env:PYTHONPATH}\Python.exe"
if ( [System.IO.File]::Exists($py_exe) ) {
echo "$py_exe exists"
exit 0
@illume
illume / midimusic.py
Created Oct 14, 2019
How to play midi music with pygame.mixer.music.
View midimusic.py
# midimusic.py
# curl -O https://upload.wikimedia.org/wikipedia/commons/5/55/MIDI_sample.mid
import time, sys, pygame
pygame.mixer.init()
pygame.mixer.music.load('MIDI_sample.mid')
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
print('Still playing :)')
View sdl2-mac-10-11.patch
--- src/video/cocoa/SDL_cocoavideo.h.orig Sat Jul 27 20:21:42 2019 +0200
+++ src/video/cocoa/SDL_cocoavideo.h Tue Jul 30 10:04:46 2019 -0700
@@ -113,9 +113,8 @@
/* Utility functions */
extern NSImage * Cocoa_CreateImage(SDL_Surface * surface);
-/* Fix build with the 10.10 SDK */
-#if MAC_OS_X_VERSION_MAX_ALLOWED < 101100
-#define NSEventSubtypeTouch NSTouchEventSubtype
+/* Fix build with the 10.11 SDK */
View fullscreen_toggle.py
import pygame
from pygame.locals import *
pygame.init()
RES=(160, 120)
FPS=30
clock = pygame.time.Clock()
@illume
illume / play_audio_layer.py
Last active Jul 14, 2019
headless pygame (without a window) playing two sounds at different times.
View play_audio_layer.py
""" headless pygame (without a window) playing two sounds one after the other.
"""
import os, sys, time
import pygame
import pygame.examples
# a pretend video.
os.environ["SDL_VIDEODRIVER"] = "dummy"
@illume
illume / tornado_thread.py
Last active Jun 11, 2019
Tornado run task in a thread pool.
View tornado_thread.py
""" Run a task in a background thread.
python3 -m pip install tornado --user
python3 tornado_thread.py
curl http://localhost:8888/2
See `run_on_executor` documentation:
https://www.tornadoweb.org/en/stable/concurrent.html#tornado.concurrent.run_on_executor
See for another approach:
@illume
illume / circle_draw.py
Last active Jun 21, 2019
hexagonal circle drawing
View circle_draw.py
#!/usr/bin/env python
import pygame
import math
def draw_aacircle(surface, color, pos, radius, width=0):
r, g, b = color
position_x, position_y = pos
alpha_max = 255
@illume
illume / metronome.py
Last active Nov 14, 2018
A metronome in pygame.
View metronome.py
"""
Show a light for every beat.
Show the BPM as text.
Use 4/4 timing. Four beats to a bar.
Press space until the BPM gets to what you want.
"""
import time
import os
import pygame as pg
@illume
illume / flask_matplotlib.py
Last active Aug 7, 2020
Shows how to use flask and matplotlib together.
View flask_matplotlib.py
""" Shows how to use flask and matplotlib together.
Shows SVG, and png.
The SVG is easier to style with CSS, and hook JS events to in browser.
python3 -m venv venv
. ./venv/bin/activate
pip install flask matplotlib
python flask_matplotlib.py
"""
You can’t perform that action at this time.