Skip to content

Instantly share code, notes, and snippets.

View kmatt's full-sized avatar
😐

Matt Keranen kmatt

😐
  • SE US
View GitHub Profile
@kmatt
kmatt / void-wsl.txt
Last active February 4, 2025 11:04
Install Void Linux on WSL2
# Based on https://gist.github.com/kmatt/71603170556ef8ffd14984af77ff10c5
# prompt ">" indicates Powershell commands
# prompt "$" are Linux shell commands
# https://docs.microsoft.com/en-us/windows/wsl/install-win10
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# install https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
@kmatt
kmatt / gistbackup.sh
Created January 10, 2025 05:30
Download all Gists using Github CLI
# Download all Gists
for i in $(gh gist list -L 1000 | cut -f1); do echo "ID: $i"; gh gist view $i > $i; done
# Rename each file with a slug of the first line / description
for f in *; do mv -v $f $(gawk 'NR==1{gsub(/[^[:alnum:]]/, "-"); gsub(/-+/, "-"); print $0 "_" FILENAME}' $f); done
#
# This shell prompt config file was created by promptline.vim
#
function __promptline_host {
local only_if_ssh="0"
if [ $only_if_ssh -eq 0 -o -n "${SSH_CLIENT}" ]; then
if [[ -n ${ZSH_VERSION-} ]]; then print %m; elif [[ -n ${FISH_VERSION-} ]]; then hostname -s; else printf "%s" \\h; fi
fi
}
@kmatt
kmatt / vimrc
Last active December 31, 2024 22:01
MYVIMRC
"Linux: curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
"PowerShell: iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |` ni $HOME/vimfiles/autoload/plug.vim -Force
let g:pymode_python = 'python3'
let g:python3_host_prog = expand('/usr/bin/python3')
call plug#begin()
Plug 'chrisbra/vim-diff-enhanced'
Plug 'csexton/trailertrash.vim'
@kmatt
kmatt / wef.ps1
Created December 20, 2024 21:42
Select and browse Windows event logs with FZF
(Get-EventLog *).Log | fzf | % { Get-EventLog -LogName $_.Trim() -after (Get-Date).AddDays(-7) } | fzf
@kmatt
kmatt / fedora-wsl.txt
Last active December 4, 2024 19:52
Fedora on WSL2
# From https://fedoramagazine.org/wsl-fedora-33/
# prompt ">" indicates Powershell commands
# https://docs.microsoft.com/en-us/windows/wsl/install-win10
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# install https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
> wsl --set-default-version 2
@kmatt
kmatt / SMOScripter.ps1
Last active November 20, 2024 02:13
Script SQL Server database to individual files for schema history
param ([string]$s, [string[]] $d, [switch]$commit, [switch]$verbose, [string]$path=(Get-Location))
# Install-Module -Name SqlServer -Scope CurrentUser
# Systemd service unit:
# ExecStart=/usr/bin/pwsh /localdata/SMOSchema/scripter.ps1 -s ALL -commit
#
# Add to $SERVICENAME.service.d/override.conf
# [Service]
# Environment=SQLCMDUSER=
@kmatt
kmatt / pl_to_sql.py
Last active November 19, 2024 02:05 — forked from bthaman/df_to_sql_fast.py
Polars dataframe to SQL Server using pyodbc, without Pandas or SQLAlchemy dependencies
def pl_to_sql(df, table, replace=False):
"""
to_sql() without Pandas
Appends or overwrites a SQL Server table using data from a DataFrame
Parameters:
df (DataFrame): df used to create/append table
table (str): Name of existing SQL Server table
replace (bool): Truncate before insert
Returns:
@kmatt
kmatt / ddb_rowhash.txt
Created November 11, 2024 15:21
DuckDB rowhash
SELECT tbl::TEXT, HASH(tbl::TEXT), MD5(tbl::TEXT) FROM tbl;
D create table tbl as (select 1 as a, 2 as b, 3 as c);
D select tbl::text, hash(tbl::text), md5(tbl::text) from tbl;
┌──────────────────────────┬────────────────────────────┬──────────────────────────────────┐
│ CAST(tbl AS VARCHAR) │ hash(CAST(tbl AS VARCHAR)) │ md5(CAST(tbl AS VARCHAR)) │
│ varchar │ uint64 │ varchar │
├──────────────────────────┼────────────────────────────┼──────────────────────────────────┤
│ {'a': 1, 'b': 2, 'c': 3} │ 6764392534128998287 │ e31681d6e7ab078c9679fcd4f50136eb │
└──────────────────────────┴────────────────────────────┴──────────────────────────────────┘
@kmatt
kmatt / redis_chunker.py
Last active September 17, 2024 21:15
Example file chunker and Redis loader
import multiprocessing, os, sys, time
from itertools import izip
import redis
rr = None
def process_chunk(chunk):
global rr
if rr is None:
rr = redis.Redis() # Create one connection per process
print 'PID %d' % os.getpid()