Skip to content

Instantly share code, notes, and snippets.


David Sword davidsword

View GitHub Profile
davidsword /
Last active Jan 31, 2021
# System and PiHole stats for 128x32 OLED screen
# Add to: `/etc/rc.local` for boot start.
# @author, davidsword
# @link
# @version 20210131
import time
import subprocess
davidsword / ESP8266 NodeMCU RGB LED Busy Server.ino
Last active Aug 19, 2020
ESP8266 NodeMCU RGB LED Busy Server
View ESP8266 NodeMCU RGB LED Busy Server.ino
/* ESP8266 NodeMCU RGB LED Busy Server
* Set an RGB LED to current status via web request
* 1. Flash this file to a ESP-12E
* 2. Open Serial to get the IP address of board
* 3. Optionally set a dedicated DHCP reservation at the router level to ensure same IP address is used
* 4. Connect common anode or common cathode RGB LED (see pins below)
* 5. Make `GET` request to `http://<IP>/<status>`
davidsword /
Last active Jun 25, 2020 Raspberry Pi - Learn to count to 5 game. Pressing button, count up to number on OLED screen, then celebrate once reached.
import time
import busio
import adafruit_ssd1306
import RPi.GPIO as GPIO
from board import SCL, SDA
from PIL import Image, ImageDraw, ImageFont
# settings
davidsword /
Last active Jul 10, 2020 - Raspberry Pi control a common anode or common cathode RGB LED. e sure to know the difference of your RGB LED. Usage: `python3 <avaliable|busy|offline>` to set as green, red, or off respectively.
import sys
import RPi.GPIO as GPIO
# Note this is BOARD numbering.
redPin = 3
davidsword /
Last active Jun 2, 2020
Github GraphQL API - Trace a commit back to a PR and get the username of who approved it
# Get the PULL number that's realted to the commit on this build
PULL=$(curl -H "Authorization: bearer ${GH_TOKEN}" -s -d "{ \
\"query\": \"query { \
repository(owner: \\\"$GH_OWNER\\\", name: \\\"$GH_REPO\\\") { \
commit: object(expression: \\\"$GH_SHA\\\") { \
davidsword /
Last active Dec 30, 2020
My personal list of statuses for Slack that I use in a custom Alfred Workflow to change my Slack presense and status as well as send a ping to HomeAssistant to change a physical busy light RGB LED for my office so my family knows my current state/focus.
State Slack Status Emoji Slack Presense Busy Light
Active 🟢 🟢
In a Meeting red-dot 🟢 🔴
On Call red-dot 🟢 🔴
Red 🟢 🔴
Busy red-dot ⚪️ 🔴
BRB yellow-dot ⚪️ 🟡
Lunch yellow-dot ⚪️ 🟡
Family yellow-dot ⚪️ 🟡
View unicorn-phat.html
<style type="text/css">
:root {
--padding: 2px;
--size: 5px;
--total: 7px;
body {
background: black;
davidsword / x_cache_seg.php
Created Nov 25, 2019
Example of Cache Varients on VIP Go
View x_cache_seg.php
* Example of Cache Varients on VIP Go
* @see
function x_cache_seg() {
// Set the response header to let CDN know of possible varient.
header( 'Vary: X-VIP-Go-Segmentation' );
davidsword / darkmode-toggle.html
Created Oct 16, 2019
Toggle Darkmode w/ a body class
View darkmode-toggle.html
<a href='#' data-darkmode-btn>Toggle Darkmode</a>
<script type="text/javascript">
/* eslint-disable */
var darkModeBtn = document.querySelector('a[data-darkmode-btn]');
var bodyEle = document.querySelector('body');
if (localStorage.getItem('darkmode') === 'yes') {
function darkmodetoggle(e) {
davidsword / wp-force-subdir-on-upload_dir.php
Last active Sep 20, 2019
WordPress - force a specific /YYYY/MM folder for media uploads.
View wp-force-subdir-on-upload_dir.php
const FORCE_UPLOAD_DIR_SUBDIR_TO = '/1990/08'; // MUST be "/YYYY/MM" format.
* Force uploads to land in a specific /YYYY/MM folder.
* @param array $uploads information about the upload directory
* @see
* @return array