Ethan Thomas's repositories
openair-vpn
An executable for managing openvpn connections on Linux with AirVPN.
split-monitor-workspaces
A small Hyprland plugin to provide awesome-like workspace behavior
nextcloud-android
📱 Nextcloud Android app
resume
My Resume
pitch-wizard
Pitch Wizard is an interactive web app with examples and a quiz to teach users how to identify the differences between four baseball pitches: Fastball, Changeup, Curveball, and Knuckleball. Built with Flask, jQuery, Bootstrap, and plain HTML/CSS/Javascript for Spring 2024 of COMS 4170 UI Design at Columbia University.
personal-website
My Personal Website
ML-auto-baseball-pitching-overlay
⚾🤖⚾ Automatic baseball pitching overlay in realtime
juce-plugin
This is a simple JUCE plugin that implements gain + pitch shifting on input audio, as well as the Karplus-Strong algorithm to generate string-like sounds.
magic-status-executables
A KDE Plasma Widget to display custom status messages on Panels.
m365py
A lightweight python library to receive parsed BLE Xiaomi M365 scooter(Version=V1.3.8) messages using bluepy
bluez-gatt-server
Create a Bluetooth Low Energy GATT Service on BlueZ from a single terminal/bash command. Update its values from a single 'mosquitto_pub' (MQTT publish) command. No extra programming. Easy to script, easy to use.
seatgeek-scanner
A tool to continuously search for tickets that fall below a target price within a date range for any given show on Seatgeek. Integrates with IFTTT webhooks. Uses Python, Selenium, and Docker.
pia-ip
A suite of shell scripts that provide autonomous functionality for Port Forwarding from the Private Internet Access Linux VPN Client.
pi-ip
A simple shell script that triggers an IFTTT webhook to POST a device's local IP address.
devfest-23-firebase
Links and details for the DevFest 23 Firebase Workshop
auto-youtuber
Scrape videos from Reddit, combine them into one, then upload them to YouTube completely autonomously every X days at every Y time.
thingm-blink-api
A simple web API for the ThingM Blink1 Device using Docker.