Skip to content

Instantly share code, notes, and snippets.

phiresky

Block or report user

Report or block phiresky

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
@phiresky
phiresky / motioninterpolation.vpy
Last active May 29, 2020
Realtime motion interpolating 60fps playback in mpv
View motioninterpolation.vpy
# vim: set ft=python:
# see the README at https://gist.github.com/phiresky/4bfcfbbd05b3c2ed8645
# source: https://github.com/mpv-player/mpv/issues/2149
# source: https://github.com/mpv-player/mpv/issues/566
# source: https://github.com/haasn/gentoo-conf/blob/nanodesu/home/nand/.mpv/filters/mvtools.vpy
import vapoursynth
core = vapoursynth.get_core()
@phiresky
phiresky / pdfextract.sh
Created May 29, 2020
ripgrep pdf text extractor with caching that is much faster than pdfgrep
View pdfextract.sh
#!/bin/bash
# usage: `rg --no-line-number --sort-files --pre pdfextract "$@"`
# better and much faster solution: https://github.com/phiresky/ripgrep-all
fname="$1"
cachedir=/tmp/pdfextract
mkdir -p "$cachedir"
View newscatcher-json.html
<meta charset="utf-8">
<script src="https://unpkg.com/sql.js@1.2.2/dist/sql-asm.js"></script>
<script>
async function go() {
const SQL = await initSqlJs();
const dbres = await fetch("https://rawcdn.githack.com/kotartemiy/newscatcher/b30358cf57c9f8f4a481b51c0a0884a64e0b85b2/newscatcher/data/package_rss.db");
@phiresky
phiresky / README.md
Last active Apr 15, 2020
guitar synthesizer in 96 characters of C
View README.md

tiny guitar synth in 96 chars of C

works by starting with a array filled with white noise (from /dev/urandom), then continuously modulating it with a low pass filter of the desired frequency.

this results in a sound pretty similar to a guitar with steel or nylon strings.

@phiresky
phiresky / client.ts
Last active Apr 9, 2020
koa example of a somewhat sane typed http server
View client.ts
import { makeClient } from "./makeTypedApi";
import { Api } from "./common";
const api = makeClient(Api);
// has all the HTTP methods like normal methods, e.g.
const results = await api.byDate()
View pdftotext-cached.sh
#!/bin/bash
fname="$1"
cachedir=/tmp/pdfextract
mkdir -p "$cachedir"
mtime="$(stat -c %Y "$1")"
hash=$(echo $fname.$mtime | sha256sum | cut -c1-64)
@phiresky
phiresky / nginx.conf
Last active Mar 20, 2020
Log as much information as possible in nginx to json format
View nginx.conf
http {
log_format json_combined escape=json
'{'
'"time_iso8601":"$time_iso8601", "remote_addr":"$remote_addr", "remote_user":"$remote_user", "request":"$request",'
'"status": "$status", "body_bytes_sent":"$body_bytes_sent", "request_time":"$request_time","http_host":"$http_host","host":"$host",'
'"args":"$args",'
'"connection":"$connection","content_length":"$content_length","content_type":"$content_type","uri":"$uri","request_filename":"$request_filename",'
'"http_referrer":"$http_referer", "http_user_agent":"$http_user_agent",'
'"upstream_connect_time": "$upstream_connect_time", "upstream_response_time":"$upstream_response_time"'
'}';
@phiresky
phiresky / README.md
Last active Jun 6, 2019
zsh histdb example data filler
View README.md

run in a somewhat interesting dir (e.g. checkout of a linux kernel) with <100k files (otherwise too slow).

mv -i ~/.histdb/zsh-history.db ~/.histdb/realhistory

./makedb.sh | sqlite3 ~/.histdb/zsh-history.db
@phiresky
phiresky / README.md
Last active May 29, 2019
qdirstat server script
View README.md

Use this to run qdirstat for a server on which it is not installed:

ssh root@server 'curl -sL https://git.io/fj42l | perl -- - / -' | qdirstat -c /dev/stdin

Yes, the arguments to perl are perl -- - dir_to_scan -. Beautiful, isn't it?

@phiresky
phiresky / .gitignore
Last active Mar 30, 2019
fusl script
View .gitignore
/node_modules
/charts.json
/stats.json
You can’t perform that action at this time.