Skip to content

Instantly share code, notes, and snippets.

View colinmcintosh's full-sized avatar
🏳️‍🌈

Colin McIntosh colinmcintosh

🏳️‍🌈
View GitHub Profile
@colinmcintosh
colinmcintosh / exercise_13.py
Created November 9, 2015 16:15
exercise_13.py
def max_in_list(list_of_numbers):
x = list_of_numbers.pop()
for i in list_of_numbers:
if i > x: x = i
return x
@colinmcintosh
colinmcintosh / second_largest.py
Last active November 10, 2015 19:27
Second Largest
def second_largest(list_of_numbers):
return sorted(set(list_of_numbers))[-2]
def second_largest_two(list_of_numbers):
x = None
for i in list_of_numbers:
if x is None or i > x:
x, y = i, x
return y
@colinmcintosh
colinmcintosh / average_file_size.sh
Created January 5, 2016 05:51
Find average file size recursively on FreeBSD
find / -name '*' -type f -print0 | xargs -0 ls -l | awk '{ total += $5; count += 1}; END { print (total/count)/1024/1024 " GB" }'

Keybase proof

I hereby claim:

  • I am colinmcintosh on github.
  • I am colinmcintosh (https://keybase.io/colinmcintosh) on keybase.
  • I have a public key whose fingerprint is 8677 7BE8 2F3B 4345 6B86 2837 B0BD 806E 5D45 F2FF

To claim this, I am signing this object:

Keybase proof

I hereby claim:

  • I am colinmcintosh on github.
  • I am colinmcintosh (https://keybase.io/colinmcintosh) on keybase.
  • I have a public key whose fingerprint is 8677 7BE8 2F3B 4345 6B86 2837 B0BD 806E 5D45 F2FF

To claim this, I am signing this object:

worker_processes auto;
worker_rlimit_nofile 65535;
events {
multi_accept on;
worker_connections 65535;
}
http {
charset utf-8;
@colinmcintosh
colinmcintosh / ubuntu_nginx_certbot_cloudflare
Last active May 1, 2019 03:48
Configure Ubuntu 18.04 for NGINX with LetsEncrypt including Auto-renewal using Cloudflare DNS
adduser colin
usermod -aG sudo colin
sudo visudo
# %sudo ALL=(ALL:ALL) NOPASSWD: ALL
mkdir /home/colin/.ssh
cp ~/.ssh/authorized_keys /home/colin/.ssh/
chown -R colin:colin /home/colin/.ssh
exit
@colinmcintosh
colinmcintosh / freenas_jail_certbot_cloudflare
Created April 25, 2019 03:01
Configure a FreeBSD Jail for NGINX with LetsEncrypt including Auto-renewal using Cloudflare DNS
pkg install nginx
pkg update
pkg install vim py27-certbot py27-certbot-dns-cloudflare
mkdir ~/.secrets
vim ~/.secrets/cloudflare.ini
##### BEGIN INI FILE
# Cloudflare API credentials used by Certbot
dns_cloudflare_email = cloudflare-email@youremail.com
@colinmcintosh
colinmcintosh / kenwood_thd72_ax25_ubuntu.bash
Last active April 10, 2021 17:11
Run AX25 on Ubuntu 18.04 via a Kenwood TH-D72 handheld transceiver
sudo apt update
sudo apt install ax25-tools ax25-apps
sudo vim /etc/ax25/axports
# Add the following line (replace MYCALL with your callsign):
# thd72a MYCALL 9600 255 7 TH-D72A (MYCALL)
# Install the latest release of Pat from here: https://github.com/la5nta/pat/releases. E.g.
wget https://github.com/la5nta/pat/releases/download/v0.6.1/pat_0.6.1_linux_amd64.deb
sudo dpkg -i pat_0.6.1_linux_amd64.deb
sudo /usr/share/pat/ax25/install-systemd-ax25-unit.bash
@colinmcintosh
colinmcintosh / yang_type.go
Last active February 14, 2020 06:28
This is an example of how to use github.com/openconfig/goyang to determine the modeled type of an OpenConfig path
// Copyright 2020 Netflix Inc
// Author: Colin McIntosh (colin@netflix.com)
// Copyright 2015 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0