Skip to content

Instantly share code, notes, and snippets.

@rcarmo
rcarmo / norns_helper.py
Last active December 28, 2025 21:31
an MCP server to develop and debug Norns/Supercollider audio synthesiis/plugins/filters
#!/usr/bin/env python3
"""
norns_helper.py - MCP server for Norns development workflow automation
This Model Context Protocol (MCP) server provides tools for deploying and debugging
Norns audio scripts remotely over SSH. It was designed to eliminate manual SSH
workflows and Makefile dependencies, enabling rapid iteration during development.
Target System:
Monome Norns (https://monome.org/docs/norns/) is a sound computer for exploring new
@rcarmo
rcarmo / kmeans.js
Created March 4, 2025 23:11
Quick KMeans hack for Node-RED
function initCentroids(pts, k) {
var randPts = pts.slice(0);
randPts.sort(() => Math.floor(Math.random() * pts.length));
return randPts.slice(0, k);
}
function dist(v1, v2) {
var sum = 0;
for (var i = 0; i < v1.length; i++) {
if (i !== 0) sum += Math.pow(v2[i] - v1[i], 2);
@rcarmo
rcarmo / enphase_average.5m.py
Created October 11, 2024 07:11 — forked from jasonsnell/enphase_average.5m.py
Enphase Envoy Local Data - SwiftBar Menu Bar Script
#! /usr/bin/env python3
# Adapted from grzegorz914@icloud.com
# see https://github.com/grzegorz914/homebridge-enphase-envoy
# <xbar.title>Enphase Solar (Averages)</bitbar.title>
# <xbar.version>v1.2</xbar.version>
# <xbar.author>Jason Snell</xbar.author>
# <xbar.author.github>jasonsnell</xbar.author.github>
# <xbar.desc>Display local Enphase solar stats.</xbar.desc>
# <swiftbar.hideAbout>true</swiftbar.hideAbout>
@rcarmo
rcarmo / mirror-releases.py
Created October 1, 2024 19:03
GitHub Release Backup Script
# Use this with a slow cron - I had mine set to run every 24 bours and keep copies of the last 5 releases
from os import environ, listdir, makedirs
from os.path import join, exists, getmtime, isdir
from shutil import rmtree
from json import loads
from asyncio import run, create_task, sleep, create_subprocess_shell
from asyncio.subprocess import PIPE, STDOUT
from aiohttp import ClientSession
from logging import basicConfig, INFO, DEBUG, WARNING, getLogger
@rcarmo
rcarmo / synthy-balls.py
Created August 23, 2024 10:25 — forked from todbot/synthy-balls.py
use rotary encoder to launch balls that play notes when bouncing in CircuitPython
# synthy-balls.py -- use rotary encoder to launch balls that play notes when bouncing
# 20 Aug 2024 - @todbot / Tod Kurt
# video demo: https://youtu.be/cCTPtk6KQQk
import time, random, math
import board
import busio, displayio, terminalio
import rotaryio, keypad
import audiobusio, audiocore, audiomixer, synthio
import gc9a01
#from adafruit_display_text import bitmap_label as label
@rcarmo
rcarmo / automator.py
Last active March 28, 2025 02:39
macOS Services in the style of NotesOllama
# Drop this into Automator using Python 3 as the shell
from sys import stdin
from json import dumps, loads
from urllib.parse import urlencode
from urllib.request import Request, urlopen
AZURE_ENDPOINT="getyourowndeployment.openai.azure.com"
OPENAI_API_KEY="getyourownkey"
OPENAI_API_VERSION="2023-05-15"
@rcarmo
rcarmo / grub_linux_manual.py
Created July 19, 2023 07:42 — forked from rversteegen/grub_linux_manual.py
My GRUB linux boot entry generation script
#!/usr/bin/env python3
#exec tail -n +3 $0
# Be careful not to change
# the 'exec tail' line above.
# This script lives in /etc/grub.d/
# 2015,2022 Ralph Versteegen
# The menuentry template was orginally generated by /etc/grub.d/10_linux
@rcarmo
rcarmo / buid-xrdp-glamor-annotated.sh
Last active January 17, 2025 22:56 — forked from rkkoszewski/gist:aa531cee7126edf329b76bdd0546f502
Notes for installing XorgXrdp and Xrdp with GLAMOR support
#!/bin/bash
# Install Latest XRDP with XORGXRDP and GFX/Glamor server-side acceleration
# Tested on Ubuntu 22.04 LTS
BUILD_DIR=/tmp/xrdpbuild
echo "-> preparing $BUILD_DIR"
rm -f -r $BUILD_DIR
mkdir -p $BUILD_DIR
@rcarmo
rcarmo / 55-bytes-of-css.md
Created September 25, 2022 17:40 — forked from JoeyBurzynski/55-bytes-of-css.md
58 bytes of css to look great nearly everywhere

58 bytes of CSS to look great nearly everywhere

When making this website, i wanted a simple, reasonable way to make it look good on most displays. Not counting any minimization techniques, the following 58 bytes worked well for me:

main {
  max-width: 38rem;
  padding: 2rem;
  margin: auto;
}
@rcarmo
rcarmo / .phoenix.js
Last active October 12, 2025 20:12
Phoenix configuration
// ********************************************************************************
// Setup and TODO
// ********************************************************************************
Phoenix.set({
daemon: false,
openAtLogin: true
});
/*