Skip to content

Instantly share code, notes, and snippets.

View fitsum's full-sized avatar
💭
npx fitsum

ፍፁም fitsum

💭
npx fitsum
View GitHub Profile
@fitsum
fitsum / recorder.cjs
Created February 11, 2025 21:08 — forked from peterc/recorder.cjs
Record an HTML file to a MP4 video
// Open a supplied HTML file and record whatever's going on to an MP4.
//
// Usage: node recorder.cjs <path_to_html_file>
// Dependencies: npm install puppeteer fluent-ffmpeg
// (and yes, you need ffmpeg installed)
//
// It expects a <canvas> element to be on the page as it waits for
// that to load in first, but you can edit the code below if you
// don't want that.
//
@fitsum
fitsum / git-log-short.txt
Created December 8, 2024 21:17
minimal git log with hash, author, date, message
git log --pretty=format:"%h%x09%an%x09%ad%x09%s"
@fitsum
fitsum / leaflet-darkmode.md
Created August 21, 2024 22:04 — forked from BrendonKoz/leaflet-darkmode.md
Automatic Dark Mode for Leaflet.js
// Leaflet JS - note the *className* attribute
// [...]

L.tileLayer('https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', {
    attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
    className: 'map-tiles'
}).addTo(map);

// [...]
:root {font-size: 16px; line-height: 1.5; font-family: sans-serif; padding: 20px}
body {}
h1 {font-size:2rem; margin-bottom:1rem; line-height: 1}
h2 {font-size:1.5rem; margin-bottom: .5rem;}
p {margin-bottom: 1rem;}
@fitsum
fitsum / ticker.js
Last active April 26, 2024 05:26
request animation frame
var now, dt,
rate = 0.5,
last = performance.now();
function frame() {
now = performance.now();
dt = (now - last) / 1000; // duration in seconds
if(dt >= rate){
console.log("bing")
last = now;
@fitsum
fitsum / dumb-console-animation.js
Last active April 26, 2024 05:25
dumb console animation
var angle = null,
step = 20,
rate = 90;
draw = () => {
if (!angle) {
angle = 0;
}
console.clear();
@fitsum
fitsum / transform-selected-text.js
Last active April 26, 2024 05:24
CSS transform selected text - NEEDS WORK
// From browser source/snippets
// TODO: use selection API
// IDEA: selecting -> uppercase => voices -> yelling one word at a time (AWS?)
//noting line breaks in chrome devtools between selection and post slice
//FIXME: better attach
document.styleSheets[document.styleSheets.length - 1].addRule("::selection", "background: red !important; color: pink !important; text-transform: uppercase !important");
//get whole parent
@fitsum
fitsum / replacing-in-pairs.js
Last active April 26, 2024 05:24
replaces array items in pairs
console.clear()
let used = [],
replaced = []
/*
TODO: only needed for early testing. can del
len = 20,
createArr = function(N) {
return Array.apply(null, {
length: N
const r = document.querySelector('input[type="range"]'),
initVal = 20,
story = [];
let currVal = null;
r.value = initVal;
r.addEventListener('change', (e) => {
let finalVal = e.target.value,
@fitsum
fitsum / nextNumOfType.js
Last active April 26, 2024 05:24
get next even or odd number given n
nextNumOfType = (n, d) => {
let opts = {true: {'even': 2,'odd': 1}, false:{'even': 1,'odd': 2}}
return n + opts[n%2 == 0][d];
}
nextNumOfType(3,'odd') // 5
nextNumOfType(3,'even') // 4
nextNumOfType(4,'odd') // 5
nextNumOfType(4,'even') // 6