Skip to content

Instantly share code, notes, and snippets.

andrewn /
Last active June 1, 2024 12:41
Testing SSL (LetsEncrypt certificate and loopback domain)

Testing SSL (LetsEncrypt certificate and loopback domain)

General approach

This sets up a publically-available domain that loops back to localhost IP address For example, this address could be if we controlled the domain. This relies on having a public domain name whose DNS records you can control. We can then generate LetsEncrypt certificates for this domain.

Our HTTP server runs on localhost:80 (default HTTP port). This lets us visit in a web browser and see the server running on localhost:80.

We then run an HTTPS proxy server on localhost:443 (default HTTPS port) that uses the LetsEncrypt certificates we generated for Visiting hits the proxy, which returns the correct certificates meaning the browser displays the "Secure" message. The proxy then passes the request through to the HTTP server.

andrewn / github.html
Created November 30, 2016 13:07
Access github API in browser using personal access token
<!doctype html>
<meta charset="utf-8">
<title>Taxfix Question Editor</title>
<link href="" rel="stylesheet">
<div id='root'>
andrewn / kill-port
Created May 16, 2022 12:12
Find out what's using those local TCP ports
# Kill process using the port
# Usage: kill-port <port-number>
# Example:
# $ kill-port 3000
# Killed 🔪
if [ $# -eq 0 ]
andrewn / espruino.js
Created February 14, 2021 10:34
Corona Ampel-Status for Espruino and LEDs
var config = {
"ssid": "WIFI SSID",
"password": "WIFI PASSWORD",
"dataURL": "",
"timeoutMs": 60 * 1000,
"numLEDs": 3,
var errors = [];
var currentErrorIndex = 0;
andrewn /
Created May 15, 2015 09:11
RFID reader using node.js and USB-UART bridge


The wiring from the USB-UART bridge and the RFID reader

RFID Reader view:

   | [1][2]      [5][4][3][2][1] |

| J3 J1 |

andrewn /
Last active July 1, 2018 08:10
Testing SSL (self-signed cert)

Easy option (self-signed cert)

  1. Install local-ssl-proxy:

    npm install local-ssl-proxy

  2. Start local-ssl-proxy on port 443:

    sudo local-ssl-proxy --source 443 --target 80

andrewn / script.js
Created April 18, 2018 12:24
var Engine = Matter.Engine,
Render = Matter.Render,
Runner = Matter.Runner,
Events = Matter.Events,
MouseConstraint = Matter.MouseConstraint,
Mouse = Matter.Mouse,
World = Matter.World,
Bodies = Matter.Bodies;
// create engine
andrewn /
Last active February 27, 2018 17:08
[DO NOT USE] Local speech with neue radiodan

⚠️ These instruction are out-of-date, do not use ⚠️

To get local speech running, you should install simon-say which is an equivalent of speech-dispatcher that uses the macOS say command to speak.

npm install --global

Make sure you have the latest radiodan and run the radiodan manager:

cd ~/path/to/radiodan/services/manager

npm start

andrewn /
Last active February 26, 2018 11:32
Radiodan: Configure PulseAudio speaker and microphone
  • Raspbian Lite
  • Create /Volumes/boot/ssh
  • Write wi-fi config to /Volumes/boot/wpa_supplicant.conf

Shell into Pi:

sudo apt-get install git -y

git clone

cd seeed-voicecard

andrewn /
Last active February 13, 2018 13:46
Pi text-to-speech (TTS)

speechd is a wrapper around tts systems festival is the thing that speaks

sudo apt-get install speech-dispatcher festival -y

See which voices are available:

spd-say --list-synthesis-voices

Say something: