Skip to content

Instantly share code, notes, and snippets.

Jim Kang jimkang

Block or report user

Report or block jimkang

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@jimkang
jimkang / get-entries-in-date-range.sh
Last active Apr 5, 2020
Simple script for getting markdown files in a certain date range (assuming the files use a common Zettelkasten naming convention in which every file starts with YYYY-MM-DD).
View get-entries-in-date-range.sh
#!/bin/bash
src=.
start=$1
end=$2
if [[ ! $start ]] && [[ ! $end ]]; then
printf "Usage: ./tools/get-entries-in-date-range.sh [start string] [end string]\nEnd string is optional.\n\nExample: To get filenames that come after 2020-03 (anywhere in March) but before 2020-03-29 (assuming files follow this naming convention):\n./tools/get-entries-in-date-range.sh 2020-03 2020-03-29\n";
exit 1;
fi
@jimkang
jimkang / pickle-to-json.py
Created Dec 2, 2019
Because I always forget
View pickle-to-json.py
import pickle
import json
data = pickle.load(open('file.pkl', 'rb'))
out_file = open("out.json", "w")
out_file.write(json.dumps(data))
@jimkang
jimkang / static-ease-values.js
Created Nov 13, 2019
Get static cubic easing values. I just ran these in the Node REPL to get the numbers.
View static-ease-values.js
var { easeCubic } = require('d3-ease')
var { range } = require('d3-array')
range(0, 1, 0.05).map(easeCubic).map(n => n.toFixed(2)).join(';')
@jimkang
jimkang / noise.html
Last active Sep 4, 2019
Perlin noise SVG filter
View noise.html
<svg width="40" height="40" viewBox="0 0 100 100"
xmlns="http://www.w3.org/2000/svg">
<filter id="displacementFilter">
<feTurbulence type="fractalNoise" baseFrequency="0.75"
numOctaves="2" result="turbulence" stitchTiles="stitch"/>
</filter>
<rect id="noise-square" width="40" height="40"
style="filter: url(#displacementFilter)"/>
</svg>
@jimkang
jimkang / faux-wood-grain-border.css
Created Sep 4, 2019
Kinda crappy but amusing faux wood grain border with `border-image`
View faux-wood-grain-border.css
.box {
border-image: repeating-linear-gradient(40deg, hsl(30, 50%, 15%), hsl(20, 50%, 30%), hsl(25, 40%, 20%) 8px) 60;
}
@jimkang
jimkang / floor-to-beginning-of-day.js
Created Aug 15, 2019
Function that floors a date to the beginning of that day (12:00 AM or 00:00).
View floor-to-beginning-of-day.js
function floorToBeginningOfDay(date) {
return new Date(date.toLocaleDateString());
}
@jimkang
jimkang / eventlistener.js
Created Jul 11, 2019
Basic addEventListener and removeEventListener, in case I need it later
View eventlistener.js
var eventListeners = {
eventName: []
};
function addEventListener(type, listener) {
var listeners = eventListeners[type];
if (listeners) {
listeners.push(listener);
}
}
@jimkang
jimkang / extract-from-a-wikipedia-table.js
Last active Jun 21, 2019
Extracting content from a Wikipedia table
View extract-from-a-wikipedia-table.js
// Run this in the console when you have a Wikipedia page open.
// First, get the wikitable element you want and add an id of `main-table` to it.
// Then:
var rows = document.querySelectorAll('#main-table tr');
var extracted = [];
function extractFromRow(row) {
if (row.children.length > 2) {
let event = {
yearsFromNow: row.children[1].textContent.replace(/\n/g, '').replace(/\[note \d+\]/g, ''),
@jimkang
jimkang / replace-with-sed.sh
Last active Aug 16, 2019
Example of replacing placeholders in multiple files with sed
View replace-with-sed.sh
#!/bin/bash
# Assuming $title and $name are read from input.
# ...
# Escaping space characters is only necessary within the shell script.
# If you're running the find...sed command directly in the shell, you don't need to escape spaces.
cleanedtitle="${title// /\\ }"
# Replace the placeholders with the title (with escape characters inserted).
@jimkang
jimkang / trouble-free-rsync.sh
Created Dec 18, 2018
rsync flags that allow you to not have to ask for privileges
View trouble-free-rsync.sh
rsync -a $(HOMEDIR) $(USER)@$(SERVER):$(SERVERDIR) --exclude node_modules/ --omit-dir-times --no-perms
You can’t perform that action at this time.