Subjectively useful tools
fix-router (bash): While traveling I found some routers not working properly with some of my US-based devices, which only use channels 1-11. European routers also support channels 12 and 13, and some older Japanese routers support channel 14. US devices seem to work best with channels 1, 6, or 11. This tool gives you the IP address of the router and scans for the least congested network. What you do with that information is up to you.
fix-video-timestamp (perl):
Sets the modified date/time to match the original date/time of
a set of video files. Google Photos does not (at the time of writing)
use the original date for AVCHD (.MTS files) videos, and instead
uses the modified date. Running this tool before uploading a video
will give it the correct timestamp.
example usage: fix-video-timestamp /path/to/files/*.MTS
.
git-diff-search (perl): Given some source code and a git repository, uses a binary search to find the commit with the closest match to the source code (for creating a minimized diff to be applied elsewhere).
git-diff-search.py (python): Python implementation of git-diff-search, with a different algorithm. More reliably finds a "good" minimum, but is less efficient.
jsonlint (python):
Simple tool to make json more readable. You can use this on a file or
pipe in some data. example usage: jsonlint data.json
or curl -s1 example.com/data.json | jsonlint
.
tether (bash):
Turns on USB tethering if your android phone is connected in debug mode and unlocked.
Takes no params. There are instructions in the comments to add to udev
so that
this will happen automatically when you connect your device, if you wish (make sure
you unlock your phone before plugging it in). Not guaranteed to work on all android phones,
but does not require root.
update-certs (bash): Script to dynamically add and update nginx configs and renew letsencrypt certifications. Can be run on a daily cron to keep certs up to date. A walkthrough of the usage can be found on the wiki.
verify-transfer (node):
After transfering some files (e.g. with rsync) you can use this to
verify that all the files are the same. It takes a while for large folders
because it gets the hashes of all files in both directories and
compares them to make sure they are the same. Works with local or remote
folders.
example usage: verify-transfer myusername@example.com:/backup/Photos ~/local/Photos
Installation
For most tools, simply add the folder to your PATH
environment variable. The
following tools require extra installation steps:
- verify-transfer:
npm install
.