Better File Formatting When Working With Llms

Copilot, Cursor, Claude Code, etc are convenient for automatically pulling relevant files from your codebase when asking questions but with difficult or sprawling questions I get much better results by manually selecting the files I want to include. To simplify this manual process, I wrote a small script named catcopy. What catcopy does catcopy takes a regex pattern, searches the codebase for matching filenames, gets the contents of each, and copies to the clipboard broke up with big markdown headers. ...

April 12, 2025 · 2 min

Git file history

View the commit history for a particular file with git on the command line: git log --follow -p -- filename

March 10, 2017 · 1 min · Paul

Disable Full Screen Shortcut on Mac OSX 10.10 Yosemite

Full screen is super annoying on OS X lately. I use SizeUp which gives me a shortcut for expanding the windows instead of using the green button but i’m still having random encounters with full screen mode because of the shortcut ctrl+shift+f. So here’s how to disable that..or at least make it harder to do by accident: # Change full screen shortcut to Shift + Ctrl + Opt + Cmd + F defaults write -g NSUserKeyEquivalents -dict-add "Enter Full Screen" "$~^@F"

May 24, 2015 · 1 min · Paul

Remove all images from JQuery UI CSS

/* remove all default background images from jquery ui */ .ui-icon,.ui-widget-content .ui-icon, .ui-state-active .ui-icon, .ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active, .ui-state-default .ui-icon, .ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default, .ui-state-error .ui-icon,.ui-state-error-text .ui-icon, .ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error, .ui-state-highlight .ui-icon, .ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight, .ui-state-hover .ui-icon,.ui-state-focus .ui-icon, .ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus, .ui-widget-content, .ui-widget-header, .ui-widget-header .ui-icon, .ui-widget-overlay, .ui-widget-shadow { background-image: none; }

May 4, 2015 · 1 min · Paul

Updating git on OS X Mavericks

The easiest way to update git to 2.2.1 or higher is to use homebrew. brew install git If you get a command not found error, you can install homebrew from brew.sh (scroll down for a one liner, i won’t copy it here in case it updates). If you get a different error, check out Updating homebrew on yosemite.

January 13, 2015 · 1 min · Paul

Updating Homebrew on Yosemite

The Error $ brew /usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory /usr/local/bin/brew: line 21: /usr/local/Library/brew.rb: Undefined error: 0 $ brew doctor /usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory /usr/local/bin/brew: line 21: /usr/local/Library/brew.rb: Undefined error: 0 The Fix Make homebrew think /System/Library/Frameworks/Ruby.framework/Versions/1.8 still exists until you successfully update: cd /System/Library/Frameworks/Ruby.framework/Versions sudo ln -s Current 1.8 brew update sudo rm 1.8

January 13, 2015 · 1 min · Paul

OS X pg gem install or bundle install issues

If you’re getting errors like: Building native extensions. This could take a while... ERROR: Error installing pg: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb checking for pg_config... yes Using config values from /usr/local/bin/pg_config checking for libpq-fe.h... yes checking for libpq/libpq-fs.h... yes checking for pg_config_manual.h... yes checking for PQconnectdb() in -lpq... no checking for PQconnectdb() in -llibpq... no checking for PQconnectdb() in -lms/libpq... no Can't find the PostgreSQL client library (libpq) *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby --with-pg --without-pg --with-pg-config --without-pg-config --with-pg_config --without-pg_config --with-pg-dir --without-pg-dir --with-pg-include --without-pg-include=${pg-dir}/include --with-pg-lib --without-pg-lib=${pg-dir}/ --with-pqlib --without-pqlib --with-libpqlib --without-libpqlib --with-ms/libpqlib --without-ms/libpqlib Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/pg-0.17.1 for inspection. Results logged to /Library/Ruby/Gems/2.0.0/gems/pg-0.17.1/ext/gem_make.out Try: ...

August 16, 2014 · 1 min · Paul

Quick Top Level Domain Lookup in Python

Python’s get_tld works very well but is slow if you’re looking up a batch of domain names. Here’s a faster version that falls back on get_tld: from tld import get_tld import re def quick_tld(url): tld_prog = re.compile(r'(?P<tld>[^./]+\.(com|net|org|co\.uk))($|/)') ip_prog = re.compile(r'\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b') try: tld_match = tld_prog.search(url) if tld_match: return tld_match.group('tld') elif ip_prog.match(article.url): return None else: return get_tld(url) except Exception as e: pass return None

June 3, 2014 · 1 min · Paul

Postgres Bytea Size

The octet_length function returns the length in bytes size of a bytea field. From the docs: “Number of bytes in binary string”. SELECT octet_length(the_data_field) FROM table_name; # byte size More binary string functions

January 17, 2014 · 1 min · Paul

Bonjour issues cause problems with teleport

Common issues caused by bonjour with Teleport: Teleport not connecting Teleport not showing the accept prompt Teleport only able to connect in one direction and not the other Teleport can’t reconnect Making sure Bonjour is working Messages.app > Preferences > Accounts > Bonjour > Enable Bonjour instant messaging (on both computers) Locate your other computer in the buddy list (⌘1) and send a message between computers. Disable Teleport on both computers Restart both computers (sorry) Enable Teleport on both computers and hopefully connect

November 25, 2013 · 1 min · Paul