Skip to content

Instantly share code, notes, and snippets.

don't put computers in your mouth

Andy Shinn andyshinn

don't put computers in your mouth
View GitHub Profile
View usermod_v2_rotary_encoder_ui.h
#pragma once
#include "wled.h"
// Inspired by the v1 usermods
// * rotary_encoder_change_brightness
// * rotary_encoder_change_effect
// v2 usermod that provides a rotary encoder-based UI.
resource "google_compute_network" "nat" {
project = var.gcp_project_id
name = "nat"
resource "google_compute_router" "nat" {
project = var.gcp_project_id
name = "nat"
network = google_compute_network.nat.self_link
andyshinn / maybe_2020_is_year_of_the_linux_desktop?
Created Mar 4, 2020
Trying out Ubuntu Budgie as a desktop OS: First week notes
View maybe_2020_is_year_of_the_linux_desktop?
I built a HEDT Windows PC late 2019 and wanted to start using it as a development environment in addition to games. It's got a Threadripper 2950X, Nvidia 2080 Ti, 64 GB memory, and 2 x Samsung 970 Pro NVMe SSDs (one dedicated to Windows 10, one to Ubuntu). These are my notes after week one of installation and usage as a work environment (Python development, DevOps, remote administration, and hopefully some video / media transcoding and manipulation). I come from a Macbook Pro as my primary work / development machine.
• No LVM in normal ISO? Had to use alternative "netinstall" ISO...OK.
• Can't click dismiss on initial WiFi notification... dismiss button broken?
• Change time from 24 hour to AM/PM. Status bar shows AM/PM but desktop still shows 24 hour...
• Xorg Nvidia driver by default, terrible resolution. Use nvidia proprietary. Reboot.
• Looks good but refresh rate 60hz? Manually change to 144.
• Refresh rate changes back to 60 on logout and back to 144 on login... How to make system wide?
• SSH keys not
andyshinn /
Last active Dec 26, 2019
Terraform variables per-workspace
$ terraform workspace new staging   
Created and switched to workspace "staging"!

You're now on a new, empty workspace. Workspaces isolate their state,
so if you run "terraform plan" Terraform will not see any existing state
for this configuration.
andyshinn /
Last active Jul 16, 2019
Get rid of Slack Quick switch / Jump to widget

These instructions will help you get rid of the Slack quick-switcher on macOS. Slack 4.0.0 introduces a different packing mechanism which adds some steps. But both sets of steps will use the following JavaScript snippet:

document.addEventListener("DOMContentLoaded", function() {
  let customCustomCSS = `
  div.p-channel_sidebar__navigation_bar {
    display: none;
View garager.ino
// This #include statement was automatically added by the Particle IDE.
#include <blynk.h>
// This #include statement was automatically added by the Particle IDE.
#include <RelayShield.h>
RelayShield myRelays;
char auth[] = "e2f9e87c65c04d9f8ae6c05c46af0271";
from datadog_checks.utils.subprocess_output import get_subprocess_output
from datadog_checks.checks import AgentCheck
class AptCheck(AgentCheck):
def check(self, instance):
metric_prefix = 'package.updates'
package_updates = self.get_update_count()
self.gauge('' % metric_prefix, package_updates['security'])
self.gauge('%s.regular' % metric_prefix, package_updates['regular'])
View gist:1d61912e68762e957a98f8e76d9833d8
1540503241102 geckodriver INFO geckodriver 0.19.1
1540503241106 geckodriver INFO geckodriver 0.19.1
1540503241112 geckodriver INFO Listening on
1540503241115 geckodriver INFO Listening on
1540503242449 mozrunner::runner INFO Running command: "/usr/bin/firefox" "-marionette" "-headless" "-profile" "/tmp/rust_mozprofile.LuNcVSKdWkZh"
1540503242452 mozrunner::runner INFO Running command: "/usr/bin/firefox" "-marionette" "-headless" "-profile" "/tmp/rust_mozprofile.NVkuSVAjuWm4"
1540503242453 geckodriver::marionette TRACE connection attempt 0/600
1540503242455 geckodriver::marionette TRACE connection attempt 0/600
*** You are running in headless mode.
*** You are running in headless mode.
andyshinn /
Created Apr 12, 2018
Google Compute Engine backend service health check to Datadog
from datadog import statsd
import googleapiclient.discovery
PROJECT = 'myproj-153506'

Keybase proof

I hereby claim:

  • I am andyshinn on github.
  • I am andyshinn ( on keybase.
  • I have a public key whose fingerprint is 45DF 685F CD42 D902 BE71 06E3 05E6 1E54 BDCC 55B0

To claim this, I am signing this object: