Skip to content

Instantly share code, notes, and snippets.

View max-mapper's full-sized avatar
✌( ͡ᵔ ͜ʖ ͡ᵔ )✌

Max max-mapper

✌( ͡ᵔ ͜ʖ ͡ᵔ )✌
View GitHub Profile
max-mapper /
Last active September 26, 2023 20:51
Save rendered map features to GeoJSON feature collection

Save bookmarklet.js as a bookmarklet and on any Felt map the currently rendered features will be saved as a file features.geojson (note: some features do not render at low zoom levels)

max-mapper /
Last active May 17, 2023 06:07
birdnet laptop mode
TIMEFORMAT='Elapsed Time: %0R seconds.'
time {
export YEAR=`date '+%Y'`
export MONTH=`date '+%m'`
export DAY=`date '+%d'`
export WEEK=`date '+%U'`
# kill `cat /home/max/tweet/`
for f in `ls /home/max/tweet/samples/${YEAR}/${MONTH}/${DAY}/*.wav`
max-mapper / index.html
Last active September 30, 2022 22:05
la county impervious surface assessor parcel map
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"
max-mapper /
Created September 1, 2021 00:07
Metro Micro API (RideCo API)

i downloaded the metro micro APK, extracted it, and then unminified the ionic JS source code, then reverse engineered these calls using my own username/password

# get a token
curl -H "Accept: application/json; version=rccmtp-2.18.0" -X POST -F "username=youremail" -F "password=yourpass"

# get geocode results
curl -H "Accept: application/json; version=rccmtp-2.18.0" -X GET "$MICRO" -H "Authorization: Token $MICRO"

# get a trip/ride id
max-mapper /
Created February 19, 2021 17:17
Bitcoin Regtest Local Server Instructions
  1. Grab the latest bitcoin-core .tar.gz release and unpack it
  2. Add the bin folder to your path
  3. Start the regtest server bitcoind -regtest
  4. Create a test wallet bitcoin-cli -regtest createwallet test
  5. Get a bcrt address for your wallet bitcoin-cli -regtest getnewaddress
  6. 'Mine' some regtest btc bitcoin-cli generatetoaddress 10 <address-from-previous-command>
  7. Make sure it worked `bitcoin-cli getblockcount
max-mapper / index.js
Last active May 17, 2023 06:09
JavaScript Base-40 Class
// based on
class B40 {
constructor() {
this.B16_CHARS = '0123456789abcdef'
this.B40_CHARS = '0123456789abcdefghijklmnopqrstuvwxyz-_.+'
divmod(x, y) {
const div = x / y
const rem = x % y
max-mapper / index.js
Created July 11, 2019 20:01
jtalk cli
var fs = require('fs');
var Speaker = require('speaker'); // version 0.3.0
var OpenJTalk = require('node-openjtalk').OpenJTalk;
// pre-included HTS voice file
var fn_voice = OpenJTalk.voices.mei_normal;
// instantiate OpenJTalk with an HTS voice
var open_jtalk = new OpenJTalk({voice: fn_voice});
// synthesize a voice synchronously
max-mapper / difflint
Last active May 30, 2021 03:26
Run eslint + prettier on only files that you've staged/commited on the current branch
#!/usr/bin/env bash
# chmod +x this and save in your PATH. Assumes `eslint` + `prettier` are in your `devDependencies`
BRANCH=$(git branch | grep \* | cut -d ' ' -f2)
BASE=$(git merge-base master $BRANCH) # change master to whatever your trunk branch is
COMMITED=$(git diff --name-only $BASE $BRANCH)
STAGED=$(git diff --staged --name-only)
FILES=$(printf "$COMMITED\n$STAGED" | sort | uniq)
LINT="npx eslint --ignore-path=.prettierignore $FILES"
PRETTIER="npx prettier --list-different $FILES"
max-mapper / index.js
Created June 3, 2019 21:15
bip39 guesser
const bip39 = require('bip39')
function twelveWords (missing) {
return `fold supreme boat absurd mango menu number brick ${missing} sun gold stone`
function loadWords () {
return `abandon
max-mapper / index.js
Created May 24, 2019 20:51
ed25519 private and public keys to pem
import { composePrivateKey, composePublicKey } from 'crypto-key-composer'
function privateToPem(privateKey) {
var decomposed = {
format: 'pkcs8-pem',
keyAlgorithm: { id: 'ed25519' },
keyData: {
seed: privateKey,