Skip to content

Instantly share code, notes, and snippets.

Avatar
🖥️
don't put computers in your mouth

Andy Shinn andyshinn

🖥️
don't put computers in your mouth
View GitHub Profile
@andyshinn
andyshinn / code.py
Created Nov 3, 2022
CircuitPython NeoPixel Matrix 16x16 Pumpkin
View code.py
from time import sleep
import board
import neopixel
from adafruit_pixel_framebuf import PixelFramebuffer
from pumpkin import pumpkins_tileset_data, pumpkin_palette
pixel_pin = board.D10
pixel_width = 16
pixel_height = 16
View gist:baca6d8cd4aaaf69bc13a8059a5433b6
# [include Macros.cfg] # You have to copy it /home/pi/klipper_config https://www.klipper3d.org/Config_Reference.html#include
# [include client_macros.cfg] # These macros are required for Fluidd to correctly function.
# This is a Klipper configuration for Qidi X-Max, with
# V4.6 motherboard. with the cooperation of Funkton and oaba200
# instruction https://github.com/KevinOConnor/klipper/blob/master/docs/Config_Reference.md
[mcu]
restart_method: command
serial: /dev/ttyS0
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.
View instance.tf
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
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
andyshinn / README.md
Last active Dec 26, 2019
Terraform variables per-workspace
View README.md
$ 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
andyshinn / BYEQUICKSWITCHER.md
Last active Jul 16, 2019
Get rid of Slack Quick switch / Jump to widget
View BYEQUICKSWITCHER.md

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;
LEDStatus blinkRed(RGB_COLOR_RED, LED_PATTERN_BLINK);
char auth[] = "e2f9e87c65c04d9f8ae6c05c46af0271";
View apt_check.py
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('%s.security' % 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 127.0.0.1:35169
1540503241115 geckodriver INFO Listening on 127.0.0.1:51405
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.