Skip to content

Instantly share code, notes, and snippets.

View proffalken's full-sized avatar

Matthew Macdonald-Wallace proffalken

View GitHub Profile
@proffalken
proffalken / linux-install.md
Created September 17, 2026 10:48
Install Techno5-dot via Linux

Installing TECHO5 Dot from Linux

This documents a working end-to-end path from a stock Amazon Echo Dot 2nd generation ("biscuit") to TECHO5 Dot, done entirely from a Linux PC (Linux Mint 22.2 / Ubuntu 24.04 base, no Windows or WSL involved). tools/install-dot.ps1 is written for Windows; the changes needed to run it on Linux are described at the end, alongside the unlock steps that get a stock unit to the installer's starting point.

1. Identify the hardware

@proffalken
proffalken / Dockerfile
Created August 29, 2026 07:11
ROS2 Hardware Passthrough
# We want to be able to run RViz etc, but we don't want to have to build everything from scratch,
# so we'll use an existing container with most of that setup as a base
FROM osrf/ros:jazzy-desktop
# This is where we make sure the OS is up to date, and also where
# we install any additional packages we need for our specific use-case
RUN apt-get update && apt-get install -y --no-install-recommends \
ros-jazzy-joint-state-publisher \
ros-jazzy-joint-state-publisher-gui \
ros-jazzy-xacro \
@proffalken
proffalken / CLAUDE.md
Last active April 16, 2026 12:29
My personal Claude Config

Proffalken's general preferences

  • Check the date/time at the start of every new session, and base all research and library usage on this information
  • If I ask you to do something and you think there is a better way to achieve the same results using different tools, technologies, or approaches, propose it, ELI5, and let me choose between the options before we start any new project
  • NEVER commit .env files
  • ALWAYS create a .gitignore for the appropriate languages

Software Development

  • Always plan before implementation, and show me the plan before starting to code
@proffalken
proffalken / api-deployment.yaml
Created April 29, 2024 14:38
Launch Bar Assistant on k3s
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
homepage.description: Drinks!
homepage.group: Organisation
homepage.href: https://drinks.my.domain/
homepage.name: Drinks
traefik.enable: "true"
traefik.http.routers.drinks-api.entrypoints: websecure
@proffalken
proffalken / config.alloy
Last active April 12, 2024 08:06
Basic config for Grafana Alloy
// Sample config for Alloy that collects metrics, logs, and traces
// and forwards them to Grafana Cloud using the Grafana Cloud OTEL
// endpoint
//
// For a full configuration reference, see https://grafana.com/docs/alloy
logging {
level = "debug"
}
prometheus.exporter.unix "default" {
@proffalken
proffalken / m5stick-c.yaml
Created December 9, 2023 10:11
m5stick esphome config
esphome:
name: m5stick
friendly_name: m5stick
esp32:
board: m5stick-c
framework:
type: arduino
# Enable logging
---
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
io.kompose.service: octoprint-server
app: octoprint-server
name: octoprint-server
namespace: default
@proffalken
proffalken / octoprint-deployment.yaml
Last active September 13, 2023 13:35
Octoprint on k8s
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
io.kompose.service: octoprint-server
name: octoprint-server
namespace: default
spec:
replicas: 1
@proffalken
proffalken / import_schedule.py
Created April 11, 2022 08:20
Import the schedule data from Network Rail
#!/usr/bin/env python
import sentry_sdk
import json
import os
import requests
import sys
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
job "platform-jobs" {
datacenters = ["dc1"]
# system job, runs on all nodes
type = "system"
update {
min_healthy_time = "10s"
healthy_deadline = "5m"
progress_deadline = "10m"
auto_revert = true
}