Skip to content

Instantly share code, notes, and snippets.

View derrickturk's full-sized avatar
💭
(Come in under the shadow of this red rock)

Derrick Turk derrickturk

💭
(Come in under the shadow of this red rock)
View GitHub Profile
@derrickturk
derrickturk / csvdump.awk
Created May 9, 2023 16:28
flimsy "CSV" dumper
BEGIN { FS = "," }
NR == 1 {
for (i = 0; i < NF; ++i)
hdr[i] = $i
}
NR > 1 {
for (i = 0; i < NF; ++i)
print "[" i - 1 "]: " hdr[i] " = " $i
@derrickturk
derrickturk / loudness_eq.ahk
Created May 4, 2023 15:32
toggle that stupid "Loudness Equaliization" setting you need to hear anything on Zoom calls
#Requires AutoHotkey v2.0
^+F12::
{
run "rundll32.exe shell32.dll Control_RunDLL mmsys.cpl"
WinWait "ahk_class #32770"
Send "{Down 2}"
Send "{Tab 2}{Enter}"
WinWait "ahk_class #32770"
Sleep 50
Send "^{Tab}^{Tab}"
@derrickturk
derrickturk / view_grid.py
Created May 2, 2023 19:42
View SMT Kingdom .GRD data (WIP)
# Copyright (c) 2023 Derrick W. Turk / terminus, LLC
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in all
@derrickturk
derrickturk / filey.rs
Created March 22, 2023 19:25
sometimes Python objects are "filey"
use std::{
io::{self, Read, Seek, SeekFrom, Write},
fs::File,
};
use pyo3::{
prelude::{Python, PyObject},
};
pub enum Filey {
@derrickturk
derrickturk / plot_petra.rs
Last active March 21, 2023 17:20
Using plotters and petra_grid to half-ass something
use std::{
env,
error::Error,
fs::File,
process::ExitCode,
};
use plotters::prelude::*;
use petra_grid::{Grid, GridData};
@derrickturk
derrickturk / petra_grid.map
Created March 6, 2023 17:27
An experiment with GNU Poke
load petra_grid;
%%
%entry
%name header
%type Header
%offset 0x0#B
%entry
@derrickturk
derrickturk / petra_grid_viewer.py
Last active March 28, 2023 17:35
WIP: reverse engineering (parts of) the Petra .GRD format
# Copyright (c) 2023 Derrick W. Turk / terminus, LLC
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in all
@derrickturk
derrickturk / pop_char.rs
Created January 22, 2023 20:12
"Uncons" a char from a Rust &str
#[inline]
fn pop_char(s: &str) -> Option<(char, &str)> {
let mut chars = s.chars();
chars.next().map(|c| (c, chars.as_str()))
}
@derrickturk
derrickturk / ziptree.py
Last active December 8, 2022 21:15
zippin' zippers in Python
# Language path: Haskell->Ocaml->Python, mypy typesystem [semantic loss ~31%]
# Subject: Zippers as the key insight
# what great fun! since mypy ~0.991 (?) we can finally, finally work with
# recursive types. this opens up Python to some traditional functional
# programming practices with a minimum of bullshit.
from typing import NamedTuple, TypeAlias
# let's walk amongst the trees for a bit.
@derrickturk
derrickturk / queue.awk
Last active December 11, 2022 15:36
SICKOS: hahahahah, yes
function push(q, val) {
if (empty(q)) {
q["head"] = 0
q["tail"] = 0
q[0] = val
} else {
q[q["tail"] + 1] = val
q["tail"] = q["tail"] + 1
}
}