Skip to content

Instantly share code, notes, and snippets.

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

Max max-mapper

🔰
✌( ͡ᵔ ͜ʖ ͡ᵔ )✌
View GitHub Profile
@max-mapper
max-mapper / index.js
Created May 24, 2019 01:36
slip-0010 hdkey ed25519 derivation from seed in javascript
var ehdKey = require("@hawkingnetwork/ed25519-hd-key-rn")
var EdDSA = require('elliptic').eddsa
// test vector from https://github.com/satoshilabs/slips/blob/master/slip-0010.md
var seed = new Buffer('fffcf9f6f3f0edeae7e4e1dedbd8d5d2cfccc9c6c3c0bdbab7b4b1aeaba8a5a29f9c999693908d8a8784817e7b7875726f6c696663605d5a5754514e4b484542', 'hex')
var ed25519 = new EdDSA('ed25519')
var derived = ehdKey.derivePath("m/0'/2147483647'", seed.toString('hex'))
var keys = ed25519.keyFromSecret(derived.key)
// expected test vector outputs
@max-mapper
max-mapper / index.js
Created May 17, 2019 18:30
secp256k1 encrypt/decrypt with bip32 keys
var KeyEncoder = require('key-encoder')
var VirgilCrypto = require('virgil-crypto').VirgilCrypto
var HDKey = require('hdkey')
const secp256k1 = require('secp256k1')
var keyEncoder = new KeyEncoder('secp256k1')
var hdKey = HDKey.fromMasterSeed(Buffer.from(SEED, 'hex'))
var childKey = hdKey.derive(PATH)
@max-mapper
max-mapper / upload.sh
Created March 27, 2019 00:43
upload large file to zenodo from command line (curl)
# in zenodo ui create a deposition. get the id
curl -H "Accept: application/json" -H "Authorization: Bearer $TOKEN" "https://www.zenodo.org/api/deposit/depositions/$DEPOSITION"
# get the bucket id from above
curl --progress-bar -o /dev/null --upload-file ./$FILE https://www.zenodo.org/api/files/$BUCKET/$FILE?access_token=$TOKEN
@max-mapper
max-mapper / list.txt
Created September 17, 2018 21:37
yay installed packages arch xps 9370
alsa-firmware 1.0.29-2
alsa-oss 1.1.6-1
alsa-utils 1.1.6-1
android-file-transfer 3.4-1
arch-backup 0.8.11-2
arch-install-scripts 19-1
asoundconf 1:1.2-1
autoconf 2.69-4
automake 1.15.1-1
bind-tools 9.13.2-1
@max-mapper
max-mapper / index.sh
Last active May 17, 2023 06:10
compile gdal with poppler from miniconda
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh
bash Miniconda2-latest-Linux-x86_64.sh
source ~/.bashrc
conda config --add channels conda-forge
conda install poppler
export IFOLDER="/mnt/bigdisk/miniconda2/include"
export LFOLDER="/mnt/bigdisk/miniconda2/lib"
export LD_LIBRARY_PATH=${LFOLDER}:$LD_LIBRARY_PATH
./configure --with-python --with-poppler=/mnt/bigdisk/miniconda2 --with-spatialite --with-pg --with-curl
@max-mapper
max-mapper / index.js
Created June 14, 2018 21:46
tar.gz browser storage import test
// tar.gz browser storage import test
//
// RESULTS:
// test 1: 233mb zipped, 22 files, 10MB per file, jpg
// sw cache: 6s
// idb: did not finish (froze browser)
//
// test 2: 55mb zipped, 600 files, ~100kb per file, map tiles
// sw cache: 5s
// idb: 49s
@max-mapper
max-mapper / map.geojson
Last active May 14, 2018 21:46
Temple City Bicycle Routes GeoJSON (Hand Mapped From Table In Adopted Bicycle Master Plan 2011)
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@max-mapper
max-mapper / index.js
Created May 4, 2018 04:08
proxy multicast from one interface to another (node.js)
// proxies 239.255.42.42:5004 from eth0 239.1.2.3:6666 wlan0
var dgram = require('dgram')
var os = require('os')
var socket = dgram.createSocket({ type: 'udp4', reuseAddr: true })
socket.bind(5004, function () {
socket.addMembership('239.255.42.42', getIpForInterface('eth0'))
socket.setMulticastTTL(255)
})
@max-mapper
max-mapper / index.sh
Last active May 5, 2018 20:04
capture rtsp and create movie (ffmpeg)
# enable multicast route so ffmpeg can resolve 2nd interface data
sudo route add -net 239.0.0.0/8 dev eth0
# grab 1 frame of video as jpg
run-every 60 ffmpeg -i udp://@239.255.42.42:5004 -f image2 -frames:v 1 -strftime 1 "%F-%H-%M-%S.jpg"
# convert jpgs to movie
rm -rf cropped
mkdir cropped
mogrify -path cropped/ -extract 1400x990+0+0 *.jpg
@max-mapper
max-mapper / index.js
Last active December 19, 2019 20:52
youtube playlist downloader
var path = require('path')
var fs = require('fs')
var ytdl = require('youtube-dl')
function playlist (url) {
var video = ytdl(url) // add , ['--audio-format=mp3'] for mp3 only
video.on('error', function error (err) {
console.log('error 2:', err)
})