Skip to content

Instantly share code, notes, and snippets.

View chernjie's full-sized avatar

CJ (curl | jq) chernjie

View GitHub Profile
@chernjie
chernjie / cache_get.sh
Last active February 22, 2024 00:23
cache_get: use curl to fetch if cache is not available locally
#!/usr/bin/env bash
cache_get() {
local cache="./data/$1.json"
test -f "$cache" && find "$cache" -type f -mtime +$((1/24)) -exec rm -v {} + >&2 # clear cache >1 hr
test -f "$cache" || curl --silent "$2" --create-dirs --output "$cache"
cat "$cache"
}
@chernjie
chernjie / queue.js
Created June 21, 2022 00:52
chive vanilla js practice
$$('figure img')
.map(el => el.src)
.reverse()
.reduce((last, next) => {
return () => {
setTimeout(() => {
console.log('<img src="'+ next +'" />')
last()
}, 1000)
}
@chernjie
chernjie / set.sh
Last active September 12, 2020 21:43
CLI implementation of Set, using file for storage
#!/usr/bin/env bash
STATEFILE=${STATEFILE:-retry.log}
# dependencies
for i in sort gsed grep echo
do command -v $i > /dev/null || (echo $i not found >&2 && exit 1)
done
prime() {
@chernjie
chernjie / npmr
Last active February 7, 2021 22:41
#!/usr/bin/env bash
# Like `npm`, but executes the command in nested sub-directories within
# your current git repository
#
# @author CJ <lim@chernjie.com>
# Example:
#
# $ npmr ls lodash # List installed packages in nested node packages
#!/bin/sh
rundir=/var/run/parallelLimit
pause_file="$rundir/paused"
harakiri_file="$rundir/good-day-to-die"
is-paused() {
[ -f "$pause_file" ]
}
@chernjie
chernjie / mkpasswd
Last active September 15, 2023 07:19
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from optparse import OptionParser
from passlib.hash import sha512_crypt;
import getpass;
parser = OptionParser(usage="%prog --method=sha-512")
parser.add_option(
'--method',
#!/usr/bin/env bash
json2markdowntable () {
local headers=$@
echo $headers | sed "s, , | ,g"
seq $# | while read i; do echo " --- "; done | xargs | sed "s, , | ,g"
json -a $headers -d" | "
}
#!/usr/bin/env node
// time csvtojson data/order-interval-20180102.csv | node mockup/order-interval.js
var stdin = require('../../ppdg/ppdg-elk/src/stdinjson.js');
var lodash = require('lodash');
stdin(_process);
function _process (err, data) {
return lodash(data)
var table = $$('.emoji-card').map((el, i) => {
return {
emoji: el.firstChild.firstChild.innerHTML,
code: el.lastChild.firstChild.innerHTML,
description: el.lastChild.lastChild.innerHTML
};
}).reduce((table, el, i) => {
var tr = document.createElement('tr');
tr.innerHTML = '<td>' + el.emoji + '</td><td>' + el.code + '</td><td>' + el.description + '</td>';
table.appendChild(tr);
@chernjie
chernjie / .editorconfig
Last active January 28, 2018 02:42
everwing
# EditorConfig is awesome: http://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true