Skip to content

Instantly share code, notes, and snippets.

View natevw's full-sized avatar

Nathan Vander Wilt natevw

View GitHub Profile
@natevw
natevw / gboard_morse.md
Last active March 26, 2024 09:51
A list of Morse code supported by GBoard Android Keyboard

Morse code supported by GBoard Android Keyboard

Google's GBoard software keyboard has a Morse code mode.

Here's what characters it currently supports:

  • .-a
  • -...b
  • -.-.c
  • -..d
@natevw
natevw / install_flatcam.sh
Last active March 17, 2024 21:37
how I got FlatCAM 8.1 working on OS X [a long time ago — see comment thread for lots of good tips from others!]
brew update
brew install pyqt geos spatialindex
easy_install pip
pip install virtualenv
cd Development/Others\'/
mkdir FlatCAM
cd FlatCAM
virtualenv env
source env/bin/activate
@natevw
natevw / msp430-notes.md
Created November 27, 2023 23:26
MSP430 in aarch VM notes
@natevw
natevw / notes.md
Last active October 10, 2022 22:09
Using Bus Blaster v4 with STM32F4x SWD

Using Bus Blaster v4 with STM32F4x SWD

For SWD (instead of normal JTAG) you need a different CPLD "buffer logic" image on the Bus Blaster, the KT-Link compatible ones seem like the recommended means.

# with buffer logic at https://github.com/dergraaf/busblaster_v4/blob/master/ktlink/ktlink.svf
# via http://dangerousprototypes.com/forum/viewtopic.php?f=37&t=5954 from https://github.com/mchck/mchck/wiki/Getting-Started#wiki-bus-blaster
curl -O https://github.com/dergraaf/busblaster_v4/raw/master/ktlink/ktlink.svf
openocd -f board/dp_busblaster_v3.cfg -c "adapter_khz 1000; init; svf /Users/natevw/Downloads/ktlink.svf; shutdown"
@natevw
natevw / Politer.mjs
Created July 4, 2022 22:32
Promise Limiter, somewhat similar to https://github.com/d3/d3-queue or https://github.com/natevw/fifolock but with async Promises instead of callbacks
/*
import Politer from "./this_gist.mjs";
let q = Politer(2),
politelyFetch = q.wrap(fetch);
Promise.all([
politelyFetch(req1),
politelyFetch(req2),
@natevw
natevw / socket_hack.md
Last active March 23, 2022 19:11
Simple TCP multiplexing protocol

TCP multiplexing protocol

A high-level approach to multiplexing multiple TCP connections over a single socket. Probably ignores a lot of queueing theory.

Background

The CC3000 WiFi chip may be especially unreliable if more than one socket is in use. So the idea is to maintain a single connection with a proxy server, which will handle the actual simultaneous outbound connections on a client's behalf. (Inbound connections are lower implementation priority.)

Terminology

@natevw
natevw / Dockerfile
Created September 15, 2021 04:32
UPduino 3.0 programming failures
FROM alpine:3.14
ADD fpga-toolchain.tar.xz /opt/
ENV PATH="/opt/fpga-toolchain/bin:${PATH}"
@natevw
natevw / prince_svg_js_namespace.html
Last active January 21, 2020 02:59
Repro for Prince XML issue rendering SVG `<use />` elements from JavaScript/React ("warning: svg: use: @xLink:href required")
<!doctype html>
<html><head>
<meta charset="utf-8">
<title>Testing SVG rendering issue of Prince 13.1</title>
</head><body>
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
>
<defs>
@natevw
natevw / shell_log.txt
Created June 17, 2017 00:06
Get CouchDB 2.0.0 working on Amazon Linux
## 2017 June 16 — build CouchDB
# via https://cwiki.apache.org/confluence/display/COUCHDB/Amazon+Linux
# and http://asaf.github.io/blog/2013/07/08/installing-couch-db-on-amazon-ami/
# and https://forums.aws.amazon.com/thread.jspa?threadID=185101 <------ mostly this, without yum java etc…
# also: http://andyfelong.com/2016/12/couchdb-2-0-on-raspberry-pi/
sudo yum --enablerepo=epel update
sudo yum groupinstall "Development Tools"
#! /usr/bin/python
import re
import sys
callsign_fmt = sys.argv[1] if len(sys.argv) > 1 else '2x2'
normal_tally = 0
vanity_tally = 0
with open("l_amat/HD.dat", 'r') as file: