You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Instantly share code, notes, and snippets.
Adam Kaminski
thimslugga
I am interested in Linux, macOS, Python, Golang, Rust and Networking.
Opinions expressed are my own and may not be the views of my employer.
A bash script to detect indicators of compromise from the SHA1-hulud npm supply chain attack.
Background
SHA1-hulud is a supply chain attack targeting npm packages discovered in late 2025. Attackers compromise legitimate npm maintainer accounts and publish malicious versions that execute code during npm install.
AOOSTAR WTR MAX Help Guide for sensors and display configuration
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Each year as Apple's World Wide Developer Conference (WWDC) approaches, I start to think about upgrading macOS to the version that was released at WWDC the previous year. I reckon that's a good way of minimising your pain and suffering, not to mention giving developers a chance to patch things that got broken when the API goal-posts moved.
The end of May 2025 was when I decided to upgrade both a 2019-era Intel iMac and an Apple M2 MacBook from Sonoma 14.7.1 to Sequoia 15.5.
Aside from the seven fractions of eternity that macOS updates seem to demand these days, it all seemed to go swimmingly. The only explicit grizzle was from Carbon Copy Cloner, which wanted a later version (on my to-do list).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Script to manually apply your shell PATH to macOS GUI apps. Fixes issues finding Homebrew/custom tools via launchd & launchctl setenv.
Sync Your Shell PATH to macOS GUI Apps Manually with This Script
The Problem
Are you struggling with macOS GUI applications (like IDEs, text editors, or other tools launched from Finder or Spotlight) not finding command-line tools installed via Homebrew (/opt/homebrew/bin), MacPorts, or in custom directories like ~/bin or /usr/local/bin? This happens because GUI applications on macOS do not automatically inherit the PATH environment variable set by your login shell configuration files (like .zshenv, .zprofile, .bash_profile, or .bashrc). Your carefully configured shell PATH works in the Terminal, but GUI apps remain unaware of it.
The Solution
This Bash script provides a simple, manual way to apply the PATH from your current Terminal session to the macOS GUI environment. Instead of complex automatic synchronization, you run this script whenever you want to update the PATH that GUI applications will use.
I'll complete the text with the process management information:
This script performs DNS TXT record lookups once per minute for 24 hours straight.
Each lookup uses a unique random name in the format 'delver-xxxxxxxx'.
Requirements
Python 3.x
Your computer must stay awake the entire time (disable sleep/hibernate)
Just some tips I gathered over time. All in one easily reachable place so I can share it wherever I want.
Please note that unless you see a shebang (#!/...) these code blocks are usually meant to be copy & pasted directly into the shell. Some of the steps will not work if you run part of them in a script and copy paste other ones as they rely on variables set before.
The { and } surrounding some scripts are meant to avoid poisoning your bash history with individual commands, etc. You can ignore them if you manually copy paste the individual commands.
I chose to write things "in the open" that way so there's still some control and things don't become a black box.