···············
·······················
····························
································
····································
······································
········································
···············∘∘························
∘·············∘•••·························
··············∘•••·∘·······················
·········∘···∘∘•••∘•····∘·∘················
··········•···•••●•••····∘∘•∘····∘···········
·········∘•∘∘∘∘∘••●●••••••••∘∘∘··•∘∘·········
········∘∘∘••••••●●●●●●●●●●●●●●●●•••∘········
······∘••••●●•••••●●●●●●●●●•••••●●●●•·······
·····∘••●••∘∘∘∘•●●●●●●●●●●●•∘∘∘∘∘•●●∘······
··∘∘∘∘••●•●∘∘∘∘•●●●●●●●●●●●●•∘∘∘•●•●·∘··∘··
·∘•••••●●●•••●●●●●●●●●●●●●●●••••●●•··∘∘···
··∘••••●●●●●●●●●●●●●●●●●●●●●●●●●●●•·∘·∘··
···∘∘••●●●●●●●●●●●●●●●●●●●●●●●●●●•∘·····
·····••●●●●●●●●●●●••●●●●●●●●●●●●∘·····
·····∘•●●●●●●●●●●●●●●●●●●●●●●•∘·····
·····∘••●●●●●●●●●●●●●●●●●●●∘·······
· ······∘•●●●●●●●●●●●●●●•∘·········
·······•••●●●●●●●●•••∘·········
···••••••••••••••• ····
······••••••••••••••∘··· ····
·······∘∘∘∘•••••••●●•····· ····
··················∘∘···········
··································
·····································
··············································
- 2026Hotkey setup for VSCode's nextEditor cycles tabs across all split groups#vscode#keybindings#productivity1
- Setting up Hermes Agent as a persistent Discord bot on a VPS, using an existing Claude subscription#hermes-agent#discord#anthropic#systemd2
- Pinning k3d node IPs so a Colima restart doesn't break your cluster#k3d#colima#kubernetes#terraform3
- Learning from what CockroachDB's Pebble repo actually does in CI#ci#testing#go#github-actions5
- Caddy can front multiple local k3d clusters on one port, with free automatic HTTPS#caddy#k3d#kubernetes6
- Claude Code can run perpetually on a VPS with Telegram#claude-code#vps#mcp#systemd5
- mini.files lets you rename, create, and delete files by editing directory buffers like text#neovim#mini.files#file-explorer5
- Setting up gcloud with separate personal and work accounts in fish + starship#gcloud#fish#starship13
- Unquoted variables in fish's `test`/`[` cause 'Missing argument' errors in completion functions#fish#gopass#shell7
- Bitbucket Server doesn't generate heading IDs, so TOC anchor links silently don't work#bitbucket#markdown#git13
- Starship context_alias uses Rust regex — $1t is parsed as group named "1t", not group 1 followed by "t"#starship#regex#kubernetes6
- cp -r creates the destination directory if it doesn't exist (in the two-operand case)#shell#posix#cp8
- os.Exit should only ever be called from main in Go#go#cli#error-handling10
- Enterprise Anthropic-compatible gateways reject the SDK's custom headers#anthropic#python#enterprise-gateway2
- `go install .` installs the current module from local source, not the registry#go#cli2
- yq can parse XML, including JaCoCo coverage reports#yq#jacoco#maven13
- git filter-repo is the modern replacement for filter-branch for rewriting commit history#git#productivity7
- PVCs cannot be shared across separate Kubernetes clusters#kubernetes#storage#k3d3
- Airflow 3 Celery workers crash silently when REMOTE_LOGGING=True but aws_default connection is missing#airflow#celery#kubernetes3
- Use filesha256 triggers on Terraform null_resource to detect file changes#terraform#null_resource3
- godoc breaks with Go modules — use pkgsite instead#go#godoc#tooling2
- make install PREFIX installs everything under one directory, not just the binary#make#linux#cli7
- make won't regenerate config.h after a branch switch unless you run make clean#make#c++#build2
- helm upgrade does not restart existing StatefulSet pods when the pod template changes#kubernetes#helm#statefulset5
- Airflow 3 with MySQL 8.0 fails because Flask-AppBuilder uses CREATE INDEX IF NOT EXISTS#airflow#mysql#flask-appbuilder7
- spring.config.import: configserver belongs in profile files, not application.yml#spring-boot#spring-cloud-config#java7
- Disabling Spring Cloud Config Server in application-local.yml is too late — use a JVM arg instead#spring-boot#spring-cloud-config#java2
- Use the MCP inspector to test stdio MCP servers interactively#mcp#go#debugging2
- Go's cookiejar strips expiry metadata from cookies#go#http#cookies3
- Airflow 3 CeleryExecutor workers need DAG files mounted on their own pod#airflow#kubernetes#celery16
- Maven Surefire silently ignores test files whose names don't end in exactly 'Test'#maven#junit#jacoco3
- In Spring Boot 3, the 'optional:' import prefix silences fail-fast: true for the config server#spring-boot#spring-cloud-config#migration3
- How to run a local multi-cluster Kubernetes setup with Colima, k3d and Karmada on macOS#kubernetes#k3d#karmada#colima#macos4
- Karmada member clusters need manual networking fixes when running on k3d + Colima#kubernetes#karmada#k3d#colima#airflow2
- String.format() is preferred over + concatenation in Java, but the compiler handles simple cases#java#strings#performance2
- git stash apply preserves the stash so you can apply it to multiple branches#git7
- Running a cronjob on Kubernetes requires installing half the internet first#kubernetes#devops#k3d4
- Classic Teams webhooks don't work in group chats — you need Power Automate + Adaptive Cards#teams#microsoft#webhooks4
- javax.sql.DataSource doesn't move to jakarta — it's a JDK API, not Java EE#java#spring-boot#jakarta1
- Killing gpg-agent fixes the keyboxd version mismatch warning#gpg#gopass#cli3
- You can fetch a single file from a remote git repo without cloning#git#cli2
- Two gotchas when pointing Crush at an Anthropic-compatible API gateway#crush#anthropic#api-gateway4
- Caddy's handle_path strips the prefix before proxying; handle does not#caddy#nginx#reverse-proxy14