Skip to content

Instantly share code, notes, and snippets.

View njh's full-sized avatar

Nicholas Humfrey njh

View GitHub Profile
@njh
njh / aes67_wishlist.md
Last active July 7, 2024 11:10
AES67 Open Source Software Wishlist

AES67 (an open standard for high quality audio over IP) is becoming mainstream in the world of broadcast and professional audio industries, however there is a very limited amount of open source software available to interoperate with it. As a result we are often just replacing XLRs with Ethernet, without taking advantage of the possibilites the software give. While Virtual Soundcards enable some of this, native network implementations would allow greater flexibility.

This is my wishlist of things that would help change that. Hopefully one day it can be turned into a AES67 Awesome List.

As open source has resulted in very rapid evolution of the web, I believe the same is possible for professional/broadcast audio.

It is possible that some of this already exists and I just havn't found it yet. Please add a comment below if you know of something!

@njh
njh / check-for-fttp.rb
Created June 27, 2024 07:10
Ruby script that checks if FTTP is available at an address using the AAISP CHAOS API
#!/usr/bin/env ruby
require 'net/http'
require 'json'
require 'uri'
options = {
new_account: true,
new_line: true,
api: 'fttp-checker',
@njh
njh / meshtastic.rb
Created June 21, 2024 09:02
Homebrew formula for meshtastic CLI
class Meshtastic < Formula
include Language::Python::Virtualenv
desc "Python CLI client for use with Meshtastic devices"
homepage "https://meshtastic.org/"
url "https://files.pythonhosted.org/packages/9c/0b/ba9a21a0580b5da8c7cb67b6a6da5862092dad5eb8be9c942781572b0de7/meshtastic-2.3.11.tar.gz"
sha256 "66d2b71fd0b007cf479763a237aa07043518683e1affe440104c8dbe1676133e"
license "Apache-2.0"
head "https://github.com/meshtastic/python.git", branch: "master"
@njh
njh / check-hsbc-tracker-rate.rb
Created June 4, 2024 12:09
Script to parse the HSBC mortgage rate page
#!/usr/bin/env ruby
#
# Script to parse the HSBC mortgage rate page
# to see if they have chanegd the 2 Year Term Tracker Fee Saver
#
# Subtracts the Bank of England rate from the HSBC advertised rates
#
require 'net/http'
require 'nokogiri'
@njh
njh / backup-github-repos.pl
Created August 23, 2017 21:24
Script to download/clone all of your Github repos
#!/usr/bin/perl
#
# Script to download/clone all of your Github repos
#
# Copyright Nicholas Humfrey, 22nd August 2017
#
# License: http://unlicense.org
#
use JSON;
@njh
njh / auto_select_certificate.json
Created December 22, 2015 11:06
Policy file to configure Chrome/Chromium to automatically select a client certificate (useful for Kiosk mode)
{
"AutoSelectCertificateForUrls": ["{\"pattern\":\"*\",\"filter\":{}}"]
}
@njh
njh / start-ipv6-tcp-ppp-server.sh
Last active May 2, 2024 21:09
Start an IPv6-only PPP server, that accepts connections over TCP
#!/bin/bash
#
#
pppd='pppd'
pppd+=' debug'
pppd+=' logfd 2'
pppd+=' nodetach'
pppd+=' noauth'
pppd+=' noip'
@njh
njh / house.example.net.conf
Created January 21, 2016 13:09
Proxying Node-Red through Nginx
server {
server_name house.example.net;
listen 1.2.3.4:80 default_server;
listen [2001:1234:ffff::1]:80 default_server;
add_header Cache-Control "public,max-age=31536000";
return 301 https://$server_name$request_uri;
}
map $ssl_client_s_dn $ssl_username {
@njh
njh / extract-daily-temperature.rb
Created January 18, 2024 09:37
Get one year of historical daily temperatures for a single location from Meteosource
#!/usr/bin/env ruby
require 'date'
require 'json'
today = Date.today
start = today - 365
(start...today).each do |date|
json = File.read("weather/#{date}.json")
data = JSON.parse(json, :symbolize_names => true)
@njh
njh / _README.md
Last active October 7, 2023 20:25
Dual-stack VyOS Zone based Firewall Generator

Dual-stack VyOS Zone based Firewall Generator

A ruby script to generate the boilerplate for a dual-stack VyOS zone based firewall.

Zones:

  • PRIVATE: contains the LAN and WAN modem admin interface
  • PUBLIC: The Internet - contains the PPPoE interface