Jeff Sodeman

Cleaning git after .gitignore changes

git rm -r --cached . git add . git commit -m "Drop files from .gitignore"

Parsing numbers from strings in SQL

SELECT Id, PetCount, ISNULL(SUBSTRING(PetCount, PATINDEX('%[0-9]%', PetCount), (CASE WHEN PATINDEX('%[^0-9]%', STUFF(PetCount, 1, (PATINDEX('%[0-9]%', PetCount) - 1), '')) = 0 THEN LEN(PetCount) ELSE (PATINDEX('%[^0-9]%', STUFF(PetCount, 1, (PATINDEX('%[0-9]%', PetCount) - 1), ''

Refresh Rider solution analysis after Git branch change

Sometimes non-existent errors are shown after changing branches while a solution is open in Rider. Run this action: Ctrl+Shift+A, "Reanalyze All" Or invalidate the cache: File > Invalidate Caches

Disable watch in Vue 2 when mutating data

This is a mixin for Vue 2 export default { methods: { $withoutWatchers(cb) { const watcher = { cb: this._watcher.cb, sync: this._watcher.sync, }; this._watcher = Object.assign(this._watcher, { cb: () => null, sync: true }); cb(); this._watcher = Object.assign(this._watcher, watcher); }, }, }; You can then use the method by passing in

Broken WordPress editing due to WPS Hide Login plugin

Page editing was broken in a WP site that I was asked to update. Unsurprisingly there were a lot of plugins running and it was difficult to track down the reason the Beaver Builder page editor was failing. In the console there were a lot of 403 permissions errors coming

Jeff Sodeman © 2026