Skip to content

Instantly share code, notes, and snippets.

View rcdailey's full-sized avatar

Robert Dailey rcdailey

  • Texas, USA
View GitHub Profile
@rcdailey
rcdailey / optionselector-space-workaround.cs
Created March 28, 2026 18:57
Workaround for Terminal.Gui OptionSelector Space-cycling and initial visual desync
// Workaround for OptionSelector Space-cycling and initial visual desync.
//
// Problem: OptionSelector always calls Cycle() when Space is pressed on the
// currently selected CheckBox. There's no way to disable this. Additionally,
// OptionSelector defaults Value=0 but doesn't call UpdateChecked(), so child
// CheckBoxes are visually unchecked even though the selector thinks the first
// item is selected.
//
// Solution: Intercept Space at the app keyboard level, suppress it entirely
// for OptionSelectors, and manually set the value or force the visual sync.

UniFi Link Speed Monitoring Implementation Plan

Overview

Deploy unpoller to scrape UniFi controller metrics and create VMRule alerts that detect link speed degradation. Configuration is self-contained via port naming convention in UniFi - no manual mappings required cluster-side.


1. Prerequisites (Manual Steps)

To implement settings layers support in a JetBrains Rider plugin, you need to understand Rider's three-layer settings system and use the ReSharper Platform SDK APIs. Here's how to do it:

Understanding Settings Layers

JetBrains Rider uses a layered settings system where higher layers override lower ones[^2]:

  1. Personal layer - User-specific settings for the current solution
  2. Team-shared layer - Settings shared across the team (stored in VCS)
  3. Computer/Global layer - Settings stored on the local machine for all instances

Architecture & Design Philosophy

Core Principles

  • KISS (Keep It Simple, Stupid) - Prioritize simplicity over theoretical completeness. Start with the simplest solution that works. Complexity must justify itself through concrete, current needs.
  • Iterative Development - Build incrementally. Defer decisions until you have enough information. Don't solve problems you don't have yet.
  • Code is Fluid - Architecture evolves. If you need something later, add it then. Removing
@rcdailey
rcdailey / .gitconfig
Created September 18, 2024 19:59
My global git configuration
#####################################################################
## BASIC SETTINGS
#####################################################################
[user]
name = # your name here
email = # your email here
[init]
defaultBranch = master
[core]
@rcdailey
rcdailey / download-tar-action.yml
Created September 7, 2024 23:50
Custom actions to preserve file permissions when uploading and downloading artifacts in a Github Workflow
# File: .github/actions/download-tar/action.yml
name: Download Tar Artifact
description: >
Download and extract a tar artifact that was previously uploaded in the workflow by the upload-tar
action
inputs:
name:
description: Artifact name
path:
#!/usr/bin/env bash
split_arg() {
split=(${1//|/ })
yml="${split[0]}"
sleep_duration="${split[1]}"
}
service_start() {
split_arg $1