128 TILs and counting...

Visual Studio 2022 can stage individual lines in git

Visual Studio added support for staging to commit individual chunks of changes (also known as interactive staging). This essentially lets you commit only parts of the changes you’ve made to a file or easily undo those changes. This is probably my most-used feature in a git gui client. One caveat, it took me a minute to figure out how to use it in VS because if you have an external diff tool configured in git then clicking to view the diff in VS will open that tool instead of the VS diff viewer....

July 12, 2023 · 1 min · Brandon Pugh

Use the Chrome devtools recorder to automate UI testing

Chrome devtools has a pretty decent recorder feature that can record and playback your UI interactions. It’s currently in preview but it’s been working well for me so far. It’s especially handy if you have to keep repeating the same 5 steps every time you reload the page to test your code. It automatically waits for UI elements to load and it’s pretty easy to tweak the recorded steps and export as a puppeteer script: https://developer....

July 11, 2023 · 1 min · Brandon Pugh

Run a bash script from Powershell

You can execute a bash script from Powershell on Windows by typing bash if you’ve enabled WSL. For example bash ./new-til.sh. Some caveats though: Make sure you use / instead of \ in the file path Make sure the bash script was saved with unix line-endings You can also make a wrapper script for scripts you regularly execute like new-til.ps1: bash ./new-til.sh $args If you don’t or can’t enable WSL, you can use sh....

July 9, 2023 · 1 min · Brandon Pugh

Create new files faster

You can use ctrl+shift+a to open the new quick add dialog in VS 2022: https://devblogs.microsoft.com/visualstudio/adding-new-files-just-got-a-lot-faster/

July 7, 2023 · 1 min · Brandon Pugh

Hide a table in sql server management studio

Apparently in sql server you can mark any table as a system table using EXEC sys.sp_MS_marksystemobject and then Management studio will hide it automatically. I ran into this because the docs say that Entity Framework 6 stores its code-first migration snapshots in a table called __MigrationHistory but I couldn’t find it because it’s hidden since it’s marked as a system table.

July 6, 2023 · 1 min · Brandon Pugh

Use ChatGPT to explain bash scripts

Today I learned that chatGPT is pretty good at explaining cryptic bash scripts and commands. I was trying to understand exactly how a git prepare-commit-msg hook was working so I asked chatGPT to “explain the following git hook to me” and it did a pretty good job. For example, it returned tidbits like: [[ $BRANCH_NAME =~ $BRANCH_REGEX ]]: This conditional statement checks if the branch name matches the BRANCH_REGEX pattern. If the branch name starts with one or more digits, this condition will be true....

July 5, 2023 · 1 min · Brandon Pugh

Use a table variable to hold a list of values

You can store a “list” of values in sql with a table variable. DECLARE @listOfIDs TABLE(id INT); INSERT INTO @listOfIDs SELECT id FROM Transactions WHERE USER='bob';

July 4, 2023 · 1 min · Brandon Pugh

Stacking context affects z-index

In CSS, the stacking context can impact which elements display on top of each in addition to the z-index. So if you end up in a situation where cranking up the z-index doesn’t seem to work, the stacking context is likely the issue. I technically learned this a while ago but completely forgot about it until I was just reminded about it by a coworker dealing with this issue. Josh Comeau explains it well in his post on stacking contexts....

June 30, 2023 · 1 min · Brandon Pugh