Skip to content

Instantly share code, notes, and snippets.

View arraydiff.js
//leaves only the unique elements in two sorted arrays
function diff(bob, steve) {
for (let b = 0, s = 0; b < bob.length && s < steve.length; ++b, ++s) {
if (bob[b] < steve[s])
--s;
else if (bob[b] > steve[s])
--b;
else {
bob.splice(b--, 1);
steve.splice(s--, 1);
@Hashbrown777
Hashbrown777 / stackoverflow-unsave.js
Last active May 31, 2023 09:46
Unfollow all your questions in a Stack Exchange list
View stackoverflow-unsave.js
//go to one of your lists, eg https://superuser.com/users/saves/241800
$('.s-block-link.js-unsave').click()
//NO NEED TO USE THIS
(async (links) => {
const request = {
body : 'fkey=' + localStorage['se:fkey'].replace(/,.*$/, ''),
method : 'POST',
View opendirectory.js
(async () => {
const ignore = /^http:\/\/waltercosand.com\/CosandScores\/Composers%20[^/]+\//;
const urls = [
'http://waltercosand.com/CosandScores/Composers%20A-D/',
'http://waltercosand.com/CosandScores/Composers%20E-K/',
'http://waltercosand.com/CosandScores/Composers%20L-P/',
'http://waltercosand.com/CosandScores/Composers%20Q-Z/'
].reverse();
const skip = [
'http://waltercosand.com/CosandScores/Composers%20L-P/Mozart,%20W.%20A/Mozart%20-%20Complete%20Works%20for%20Piano/'
@Hashbrown777
Hashbrown777 / merge.ps1
Created May 22, 2023 12:00
take all files in $from and put them in the same place under $to, replacing any matched files
View merge.ps1
$from = $from | gi
$to = ($to | gi).FullName
$from `
| Get-ChildItem -File -Recurse `
| &{
Begin {
$from = '^' + [Regex]::Escape($from.FullName)
}
Process {
@Hashbrown777
Hashbrown777 / batt50.ps1
Created May 15, 2023 05:00
Discharge laptop to 55% before shutting it down & not using it for a good while
View batt50.ps1
while ((Get-CimInstance Win32_Battery).EstimatedChargeRemaining -gt 55) { sleep 60 } shutdown -s -t 0
@Hashbrown777
Hashbrown777 / #WSL stuff
Last active May 14, 2023 10:31
wsl stuff
View #WSL stuff
#todo explanation
@Hashbrown777
Hashbrown777 / ssh.ps1
Last active April 17, 2023 14:16
A workaround for Windows official openssh client not supporting -f nor -N
View ssh.ps1
#accepts all arguments for ssh except command, -N and -f
#command can be piped in
Filter ssh-f {
$N = $False
if (!$_) {
#the same as -N
$_ = 'read'
$N = $True
}
$_ = 'echo SUCCESS;' + $_
@Hashbrown777
Hashbrown777 / punchHoles.ps1
Last active April 17, 2023 04:12
In files identified as containing corrupted blocks punch holes in the valid blocks so they don't take up as much space
View punchHoles.ps1
$blockSize = 4KB
$buffer=[byte[]]::new($blockSize)
Get-ChildItem -File `
| Sort-Object -Property Length
| %{
"$($_.Name)`t$($_.Length / 1MB -bor 0)MB"
#useful if your files are patchable eg torrent-sourced
sudo cp --reflink=always $_.FullName "$($_.FullName)_rescued"
chmod u+r $_.FullName
@Hashbrown777
Hashbrown777 / 1_client.ps1
Last active March 28, 2023 14:08
Listen and send basic messages over TCP to see if your ports are open
View 1_client.ps1
&{ Param($hostname, $port)
$socket = $NULL
$stream = $NULL
try {
$socket = [System.Net.Sockets.TCPClient]::new(
[System.Net.IPAddress]::Parse(
[System.Net.Dns]::GetHostAddresses($hostname)
),
$port
)
@Hashbrown777
Hashbrown777 / attachsmb.ps1
Last active January 20, 2023 13:25
A set of functions that enable you to make use of multiple local SMB servers (eg ssh -L), or get explorer to interact with samba shares of other machines on non-standard ports
View attachsmb.ps1
<#
#Required:
Install-Module -Name LoopbackAdapter -MinimumVersion 1.2.0.0
#run in admin terminal
#you do NOT need to disable/remove SMB 1.0/CIFS
#Troubleshooting:
#You can check [attempted] forwardings and [successful] listeners here, respectively
netsh interface portproxy show v4tov4