Skip to content

Instantly share code, notes, and snippets.

View lzehrung's full-sized avatar

Luke Zehrung lzehrung

  • ClearGov Inc.
  • South Bend, IN
  • 23:42 (UTC -04:00)
View GitHub Profile
@lzehrung
lzehrung / restart-win-audio.ps1
Created February 9, 2026 16:36
restart windows audio
Restart-Service -Name AudioEndpointBuilder -Force;
Restart-Service -Name Audiosrv -Force;
@lzehrung
lzehrung / op-name.ts
Last active January 28, 2026 01:45
TS class and function name helper
// see https://www.typescriptlang.org/play/?#code/C4TwDgpgBAggdiAYnKBeKAKAdDghgJwHMBnALilwQG0BdASjQD4KEBuAKHYHoupEBXOAGNgASwD2KANYQQxKOIBmFKKEjs10ZAGlZxADwAVZugDe7KFCraoo6bKVRDNALQB+coes0oEAB7AEHAAJvLwSChuUDbkcBAAbhD47AC+VDIgjs5QAGRQxMD4doQc3LwAon5CADb8wdAA8gBGAFYQIlBg+OLAPeDQBfyKygDUUEKSBfj8IuL4mD0AFkkA7qLE0CvQhBDAUABEvQDKhcX7ADS+wEJ0Gv1QAMLVEJQ6ekYmUJU1dRD6b3IPpcMo5mm0OgAfA4TOBTGa9fD7RilTRQBpgAAK3T8IH0RyS8VEQggADlcABbaD+QIheRTYqXXRyXwBIKhfKnOCET7mSzWWwoJnEGjkAAGABJTPj8ITiWTKSksJLtClRRwUqVFIIRBIUOTcDJ0VjxDi8QSiaSKVTWbSOUUuYy9Cyaez6VzGBgLPlzXKreRpbLLZT2HRyEbsbiAxb5RBHXJmLzxpM9kJcEJlmgoHEVlAALK4MD6N2ES7Fj10UqWfC7fj4FDZqDGnEYMHtYBYITV3CBDBwfjVap0S6Jyw7YAYAD6wAIY8uXXEYAYI8stmUGE0jnnYCgAEJUOh9sX9gxq8BayhBPVFHYIMFKyvLDCClBFqI9uhU+mIFgxxgtxWvQfUQ11fYATxrOsXzfe8HyfPZ4lwWpoHQCVTA2GVoytRVJS3VUOAfR802WLANnHLdLgQpCAIIqBT3PKBKP4CB8JXFJzi9FIGFweRKBAdVOC4AAqQSLEEtE4igLVhDESRyGIfgwDAOZgHkJolg5bsiSgMY7AKShiSgSlgEWcRQiwUTRKgFwoFFBcMFzEAnm44g6BI8RKROTShFzXYTOCUVLOs2ywHsxzqmc1ziHciAAElYWnYQIB84zTICqARPSpwjigQh+AIShAggeRjOgSlySa
@lzehrung
lzehrung / ts-prop-path.ts
Created November 30, 2025 22:30
Type-checked property path
// https://www.typescriptlang.org/play/?#code/PTAEEEBtNA3BDSBLAJqFB7ALgWgM4CmADvAE7xYFolYAWeoAZhqaACoBQWAnkQaAAUKtADxsAfKAC8HUKBCgAShmygkDeADtQZct1ntQBAB6VNKBqQLxMmyN1AAKJJsYFWAVQCUAbQC6BnIA-KAAPqAABgAkAN6aAK4AtgBG7gC+EXJZ2TlZCgBEAAz5ADSg+QCMpeUATNUAdI2BWeHRcUmppGn1sUJ0Ih7iGbkFhfWo1UX1zBj1yWQNTdkKyqrqOtoYyQBWBADGWM0AXIYmZhagW7sHzcGgMbc5PgDSatoA1gTcGIyGAGSgPBYUguADmfiOj1ybBefiMpgI5gYV32h1y6PkYFeGG0SCwyIA7poyixQM96iIUARiO5QDRaOIoeiQm1nsNWrE2T0Yn1RDDnn4hhEmSMwJBrL8iKQMHxSDwRTkTqyMky0j5Pt9fmxQACgSDNODHidNARYO4ANwcK0KACSmkopE0iFAtAIkFloAJeNoOiYkHgoNAdAoQbdkAY8TwHAUBNddFpBIIAHIzXT4HhCGg6NL4qCfVodKQ9G8qcZ6lxePxeQA1RDxAh2k2kEQGNglAwCeHnBh6sHtuRsWg5vPgIvwBxnREXZIqcVaDiSGRyBQAZSIyCwOk3jCQpCB6GwJwAEtYUPVFAQgR2u1OGG0XG5WCebN1Yg-aRegSrsiFtZOkaAVg2Di9hOO+ni+AEoqgDaWpqBoY7cGUz5oIkkabqkvoJCk7g4MgnwliYjwhChN4AW02GdN+6IKAA8poez8ImhHGEGrqFnoZRWIkBA4awwbbvABxOIOw60KOxZSEGpD1l4TIhDWdYNpoTYDGUn5YGUwL1oyGLGqa7iPAo2rrCiBzHqeoBofumHwKAGpGqApH-hcGo-Ow8mCMItaQPWjbuGIPgoX46mXpp7BDhgubiYhunovpZqkAYCgAHIYFZLD8Jg+JlDuTowIQoI8faBgnH+CIAUBti
@lzehrung
lzehrung / remove-node_modules-recurse.ps1
Created May 10, 2024 17:44
powershell remove node_modules recursively
Get-ChildItem -Path "." -Include "node_modules" -Recurse -Directory | Remove-Item -Recurse -Force
@lzehrung
lzehrung / all-settled-with-concurrency.ts
Last active March 31, 2025 13:20
`promise.allSettled` but with a concurrency limit
type PromiseGenerator<T> = () => Promise<T>;
interface PromiseResult<T> {
status: 'fulfilled' | 'rejected';
value: T | Error;
}
/**
* Executes a list of promise-generating functions with a specified maximum concurrency,
* returning a promise that resolves to an array of results. Each result includes the
@lzehrung
lzehrung / test-express-timeout.ts
Last active July 14, 2023 14:40
Test express connect-timeout middleware
import express from 'express';
import requestTimeout from 'connect-timeout';
express()
.get(
'/long-running',
requestTimeout('3s', {
respond: false,
}),
(req, res) => {
const alpha = 'abcdef'.toUpperCase().split('');
const randomNumber = () => Math.floor(Math.random() * 10).toString();
const randomLetter = () => alpha[Math.floor(Math.random() * alpha.length)];
const randomCharacter = () => Math.random() > 0.5 ? randomLetter() : randomNumber();
function generateOtp(length = 6) {
return Array.from({ length }, randomCharacter).join('');
}
const pass = generateOtp();
// https://www.typescriptlang.org/play?#code/IYZwngdgxgBAZgV2gFwJYHsIwA4Cd0C2qIApgIIA2FAFAJQwDeAUDKzFJiMjACbDIkYAXhgQSAdxgARfiToBuFm2DjgqbgAV8RUgDpgVagG0lbNmMlbCxOdVwkQ6CgDcS9IQD5GpszFLIAFVQCEnQEZDsHJ1cAGhgAJgAGZNpFXzYAX1oYnzMLGCsdW3tHFzdhL2Z09P8gkLCIkuiSOKSUtOqsgF0fVJ8OCFKSXQp0AHNqAAMDChhkdHQAaxgAEgZ8mQE6XWcDBBIAeTg6GABaXlkdvcPj2gyCEEnaJiYMl9BIWEQUDCxSAEd9hA0AYTlU2AMuBcBMJRBJpLIFD4VGpuPlCjZqJFSq53JVcmxasFQuFsc1WslEn0zFkOqwUeo4ZZtJiyWU8d5qn4SIFiQ02bEEpTqZkRaxIU5hqMJpNSLhUAY5gtlmsNojaFcKPsjidznwBJrtbd7o9nm8mNQPtAYCdPJzlKpGXhrKRKDQxTAGdwAUCQe7FFkFEA
async function promiseAll() {
const date = new Date();
await Promise.all([
new Promise((resolve) => {
setTimeout(resolve, 2000);
}),
new Promise((resolve) => {
setTimeout(resolve, 2000);
@lzehrung
lzehrung / nextjs_nested_dynamic_routes.md
Last active May 19, 2022 02:46
next.js nested dynamic routes

url: /states/IN/counties/12345

folder structure:

/pages
  /states
    /[state]
      /counties
        [county].tsx
 index.tsx
@lzehrung
lzehrung / win-foreign-addr.ps1
Created May 6, 2022 20:58
open connections
netstat -p TCP -fan | Select -Skip 4 | ForEach {
$Properties = $_.Trim() -split '[\s]+'
[PSCustomObject]@{
'Proto'= $Properties[0]
'Local Address'= $Properties[1]
'Foreign Address'= $Properties[2]
'State'= $Properties[3]
}
} | Select -Expand 'Foreign Address'