Skip to content

Instantly share code, notes, and snippets.

geekman

Block or report user

Report or block geekman

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
@geekman
geekman / hexdump2bin.py
Created Nov 18, 2019
hexdump to binary file
View hexdump2bin.py
#
# reconstructs binary files from hex dumps
# designed to be more forgiving than `xxd -r`
# dump formats are flexible, whether grouped by 4 digits,
# with or without ASCII, etc.
#
# 2019.10.24 darell tan
#
import sys
@geekman
geekman / dumpscript-gen.py
Created Nov 18, 2019
minicom script generator for dumping firmware
View dumpscript-gen.py
#!/usr/bin/python2
#
# script to generate a minicom script that dumps entire flash
# problem is the stub seems to read all data into RAM first,
# so you can only do in batches
#
# 2019.10.24
# inc needs to be low enough to complete within `expect` timeout
inc = 0x20000
@geekman
geekman / bits.py
Created Sep 12, 2019
one-liner combining bits into an integer, the Python way
View bits.py
bits = [1,0,1,0,0,0,0,1]
v = reduce(lambda x, y: x | y,
[n << p for p, n in enumerate(reversed(bits))])
print '%02x' % v
@geekman
geekman / screen-hardstatus.md
Created Aug 6, 2019
simple GNU screen hard status line
View screen-hardstatus.md
@geekman
geekman / .sigrok toy decoder.md
Last active Jul 9, 2019
libsigrok toy decoder
View .sigrok toy decoder.md

libsigrok Toy Decoder

This is a very minimal example for writing your own quick-and-dirty decoder that you can use in PulseView.

This decoder displays annotations for a signal that's made up of 1 ms units. It annotates from one signal edge to another, without regard for time. If you want to handle the actual units of time, more logic is required and that's left as an exercise for the reader.

@geekman
geekman / fix-single-dialog.lua
Created Jun 13, 2019
Aegisub plugin to remove lone dash from single dialog
View fix-single-dialog.lua
--
-- usually a dash is used to indicate multiple parties talking in one sub
-- but oddly, sometimes a single dash is present, even if only a single person
-- is talking. this script fixes that.
--
script_name = "Fix single dialog"
script_description = "Remove dash for single party dialog"
script_author = "darell tan"
script_version = "1"
@geekman
geekman / subst-exec.sh
Created May 30, 2019
replaces patterns like "<? cmd ?>" by executing cmd
View subst-exec.sh
#
# awk one-liner to replace patterns like "<? cmd ?>" by executing cmd
# handy for use in config files "templates"
#
cat <<EOF | awk '{ if (match($0, /<\?(.*)?>/)) { cmd = substr($0, RSTART+2, RLENGTH-2-2); system(cmd) } else print }'
my directory has these files:
<? ls / ?>
EOF
@geekman
geekman / ffmpeg-snippets.md
Created May 22, 2019
some ffmpeg commands
View ffmpeg-snippets.md

create a list of filename,title list

for %f in (*.mp4) do @ffprobe -v error -of csv -show_entries format=filename:format_tags=title %f >> list.txt
@geekman
geekman / strip-query-snippet.js
Created May 22, 2019
strips query string from selected URLs on page
View strip-query-snippet.js
// strip query string (or search params) from "/xyz/..". URLs
for (let a of document.querySelectorAll('a[href^="/xyz/"]')) {
let u = new URL(a.href.toString());
u.search = '';
a.href = u;
}
@geekman
geekman / faststart
Created Apr 26, 2019
make MP4 files stream better by moving their "moov" atom to the front
View faststart
#!/bin/sh
# script to make mp4 videos start fast
# (i.e. shifting their moov atoms to the front)
FNAME=$1
[ -f "$FNAME" ] || exit 1
TMPFNAME=`mktemp -u ${FNAME}.XXXXXX`
head -c128 "$FNAME" | grep -F moov -q
You can’t perform that action at this time.