Skip to content

Instantly share code, notes, and snippets.

Avatar
🛸

David Sword davidsword

🛸
View GitHub Profile
@davidsword
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
davidsword / oled-count-game.py
Last active Jun 25, 2020
https://davidsword.ca/learning-to-count-to-5-with-a-raspberry-pi/ Raspberry Pi - Learn to count to 5 game. Pressing button, count up to number on OLED screen, then celebrate once reached.
View oled-count-game.py
# https://davidsword.ca/learning-to-count-to-5-with-a-raspberry-pi/
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
davidsword / rgb-led-status.py
Last active Jul 10, 2020
https://davidsword.ca/a-cheaper-diy-status-light/ - Raspberry Pi control a common anode or common cathode RGB LED. e sure to know the difference of your RGB LED. Usage: `python3 rgb-led-status.py <avaliable|busy|offline>` to set as green, red, or off respectively.
View rgb-led-status.py
# https://davidsword.ca/a-cheaper-diy-status-light/
import sys
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
# Note this is BOARD numbering.
GPIO.setmode(GPIO.BOARD)
redPin = 3
@davidsword
davidsword / get-assoc-pr.sh
Last active Jun 2, 2020
Github GraphQL API - Trace a commit back to a PR and get the username of who approved it
View get-assoc-pr.sh
GH_TOKEN=""
GH_REPO=""
GH_OWNER=""
GH_SHA=""
# 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
davidsword / ssbl-README.md
Last active Sep 4, 2020
My personal list of statuses for Slack that I use (1) in an Alfred Workflow to change state, and (2) for a Busy Light that polls Slack status and reflects accordindly. This is the canonical source for these statuses, both tools pull the json file from this repo directly.
View ssbl-README.md
State Slack Status Emoji Slack Presense Busy Light Varients
Active 🟢 🟢
BRB yellow-dot ⚪️ 🟡 BRB, Lunch, Family
Busy red-dot 🟢 🔴 Busy, In a Meeting
Offline ⚪️ ⚪️ Offline, AFK
View unicorn-phat.html
<style type="text/css">
:root {
--padding: 2px;
--size: 5px;
--total: 7px;
}
body {
background: black;
padding:2px;
margin:0;
@davidsword
davidsword / x_cache_seg.php
Created Nov 25, 2019
Example of Cache Varients on VIP Go
View x_cache_seg.php
<?php
/**
* Example of Cache Varients on VIP Go
*
* @see https://github.com/Automattic/vip-go-mu-plugins/blob/master/cache/examples/segmentation-maintenance-mode-bypass/vip-config.php
*/
function x_cache_seg() {
// Set the response header to let CDN know of possible varient.
header( 'Vary: X-VIP-Go-Segmentation' );
@davidsword
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') {
bodyEle.classList.add("darkmode");
}
function darkmodetoggle(e) {
@davidsword
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
<?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 https://github.com/WordPress/WordPress/blob/2b92bcab85cecd819596b79b0b52f44aa4dfaffa/wp-includes/functions.php#L2223-L2239
* @return array
@davidsword
davidsword / wpcli-media-count.php
Last active Oct 2, 2019
WordPress WPCLI - Count Media Library by Types
View wpcli-media-count.php
<?php
/**
* Implements `media-count` command.
*/
class WPCLI_Media_Library_Count {
/**
* Get total count of all media and break down counts for each media type.
*
* ## EXAMPLES
*
You can’t perform that action at this time.