Skip to content

Instantly share code, notes, and snippets.

View Riebart's full-sized avatar

Mike Riebart

View GitHub Profile
@Riebart
Riebart / get_symlink_file_target.ps1
Created July 17, 2019 17:03
FInd the target of a file reparsepoint (such as those used for binaries in Store apps)
@Riebart
Riebart / do.js
Created September 19, 2019 17:19
Nodejs script to convert Textract output into a PDF using PDFkit
const fs = require('fs');
let rawdata = fs.readFileSync('/working/out4.json');
let data = JSON.parse(rawdata);
// You'll need to twiddle the dpi, page size, and font size to get your stuff to layout properly.
// Assumes uniform font size in the input.
let dpi = 200;
let width = 17 * dpi;
let height = 11 * dpi;
const PDFDocument = require('pdfkit');
@Riebart
Riebart / .bashrc.aws
Created October 26, 2019 01:17
Collection of bashrc contents that makes it a bit easier to work across accounts
#!/bin/bash
# For non-256 colour terminals
#PS1='\[\e]0;\w\a\]\n\[\e[00;35m\]${AWS_PROFILE}$([ "$AWS_PROFILE" == "" ] && echo -n "" || echo -n " ")'
# The default region, if set
PS1=$PS1'\[\033[38;5;92m\]${AWS_DEFAULT_REGION}$([ "$AWS_DEFAULT_REGION" == "" ] || echo -n " ")'
# The AWS profile
PS1=$PS1'\[\e]0;\w\a\]\[\033[38;5;208m\]${AWS_PROFILE}$([ "$AWS_PROFILE" == "" ] || echo -n " ")'
# The existence of environment variables
@Riebart
Riebart / watch_fedex_package.sh
Created March 1, 2020 19:36
Watch a fedex package status via API calls
#!/bin/bash
tracking_number="$1"
while [ true ]
do
date +%FT%T
echo -n "Tracking ${tracking_number} "
curl 'https://www.fedex.com/trackingCal/track' \
-s \
-H 'Connection: keep-alive' \
-H 'Pragma: no-cache' \
@Riebart
Riebart / config.snipet
Created March 2, 2020 17:52
Ubiquiti EdgeRouter IPv6 router advert and prefix delegation config
interfaces {
ethernet eth1 {
address 10.0.0.1/24
address 192.168.100.1/24
address ffff:ffff:ffff:ffff::1/64
address ffff:ffff:ffff:ffff::1/64
description Athens
duplex auto
firewall {
local {
@Riebart
Riebart / steam_library_completion_time.sh
Last active November 4, 2020 06:24
Scrape completion times from a Steam user library using howlongtobeat
#!/bin/bash
# DEPENDENCIES:
# - jq: https://stedolan.github.io/jq/
# - pup: https://github.com/EricChiang/pup
# - python-Levenshtein: https://pypi.org/project/python-Levenshtein/
# - You'll need a Steam API key, which you can get from https://steamcommunity.com/dev/apikey
# USAGE:
# This pulls in the full steam app list from the API, your user's game list via the Steam API,
@Riebart
Riebart / state_scaling_by_election_power.wls
Created November 4, 2020 22:47
Wolfram code to generate a few maps that show election results, scaling states to show actual electoral power.
votesPerState = {{"Alabama", 9.`}, {"Alaska", 3.`}, {"Arizona",
11.`}, {"Arkansas", 6.`}, {"California", 55.`}, {"Colorado",
9.`}, {"Connecticut", 7.`}, {"Delaware",
3.`}, {"DistrictOfColumbia", 3.`}, {"Florida", 29.`}, {"Georgia",
16.`}, {"Hawaii", 4.`}, {"Idaho", 4.`}, {"Illinois",
20.`}, {"Indiana", 11.`}, {"Iowa", 6.`}, {"Kansas",
6.`}, {"Kentucky", 8.`}, {"Louisiana", 8.`}, {"Maine",
4.`}, {"Maryland", 10.`}, {"Massachusetts", 11.`}, {"Michigan",
16.`}, {"Minnesota", 10.`}, {"Mississippi", 6.`}, {"Missouri",
10.`}, {"Montana", 3.`}, {"Nebraska", 5.`}, {"Nevada",
@Riebart
Riebart / ffmpeg_side_by_side.sh
Created November 16, 2020 04:31
ffmpeg incantation for side-by-siding two videos of different resolutions and framerates.
#!/bin/bash
ffmpeg \
-ss 90.75 -i "input1.mp4" \
-ss 0 -i "input2.mp4" \
-filter_complex "\
[0:v]setpts=PTS-STARTPTS,crop=iw/2:ih:iw/4:0[leftRaw];\
[1:v]setpts=PTS-STARTPTS,crop=iw/2:ih:iw/4:0[rightRaw];\
[leftRaw]scale=-1:1080[left];\
[rightRaw]scale=-1:1080[right];\
@Riebart
Riebart / syslog_levels.md
Created December 4, 2020 16:24
Documentation on the syslog levels and facilities, and how to use them when building application logging

Syslog logging levels and parameters

All logs

All logs should contain the following information, preferably encoded in JSON so that it is easily machine-parsable as well as human readable. Graylog can parse JSON, so encoding your fields in that way makes it easy to alert and filter on messaged components.

  • Message: The message should be a plaintext description of the event, optionally including an application-unique code.
  • Impact: This field should describe the impact, if any (there is no impact for debug and informational events), on the state, output, and resiliency of the application. It should be short (one sentence), but contain enough information for someone not familiar with the application to triage the event.
  • Correction: This field should describe any corrective action, if any (there is no corrective action required for debug, informational, and notice level events), that could, or should, be taken to resolve the impacts caused by the event. This should be short (at most two sentences) an
@Riebart
Riebart / remarkable_find_update_device_id.py
Last active December 15, 2020 15:55 — forked from leezu/remarkable_find_update_device_id.py
Python script to rotate the machine IDs and OEM identifiers to find one that is eligible for a software update.
#!/usr/bin/env python3
import time
import uuid
import random
import re
import sys
import requests