Skip to content

Instantly share code, notes, and snippets.

View terrywang's full-sized avatar

Terry Wang terrywang

View GitHub Profile
@terrywang
terrywang / nginx.conf
Created July 28, 2022 23:28
Nginx config for log.terry.im
server {
listen 80;
# listen [::]:80 default ipv6only=on;
server_name log.terry.im;
# redirect all HTTP requests to HTTPS with a 301 Moved Permanently response
location / {
return 301 https://$host$request_uri;
}
}
@terrywang
terrywang / nginx.conf
Created July 28, 2022 21:48
Nginx Configuration for Pi-hole
server {
listen 80 default_server;
# listen [::]:80 default_server;
root /var/www/html;
server_name _;
autoindex off;
index pihole/index.php index.php index.html index.htm;
error_page 404 pihole/index.php;
@terrywang
terrywang / ssh_config
Created March 6, 2022 22:42
Using AWS SSM for SSH Dynamic Forwarding so as to access services in private subnet
Host ssm-tatooine
ProxyCommand sh -c "aws ssm start-session --target <instance id> --region <region> --document-name AWS-StartPortForwardingSession --parameters '{\"portNumber\":[\"22\"],\"localPortNumber\":[\"22222\"]}'"
Host dynamic-forwarding
Hostname localhost
user terry
IdentityFile ~/.ssh/r2d2_ed25519
Port 22222
UserKnownHostsFile /dev/null
DynamicForward 1080
@terrywang
terrywang / gist:74d1617600dfc7c2fb4c6365c60b09db
Last active November 30, 2023 02:47
Bash history HISTFILE deduplication while preserving order
# backup HISTFILE
cp ~/.bash_history{,.bak}
# deduplicate - deprecated
nl ~/.bash_history.bak | sort -k2,2 -k1,1nr | uniq -f1 | sort -k1,1n | cut -f2 > ~/.bash_history
# dedupelicate
cp ~/.bash_history{,.bak-$(date -I)}
tac $HISTFILE | awk '!x[$0]++' | tac | sponge $HISTFILE
@terrywang
terrywang / gist:50230273cf93d24eae363ab36584150b
Created August 29, 2020 12:07
terrywang@github keys.pub
BEGIN MESSAGE.
kb9gwzCN54guTDZ nRzTyPdnlMNA3qX NsJya3Xx0fUvqrX Vd90YV82h6Y7GJF
sumxMqfA9HmjTij JlQ2T8y8HjaTCKq 6Xr2MZHgg6Sdxkm kC9iG2QUd2xL5A8
Xos3qZmbvQqWVLB WyGeiAPgJWM8t0K LkygSwAlkXDHrTJ QbGfAXkSywRXkTZ
CNpuUkfztYMa2Jo hZIjTbpdxMb4cIj 3E2iO29HFxl.
END MESSAGE.

Keybase proof

I hereby claim:

  • I am terrywang on github.
  • I am terrywang (https://keybase.io/terrywang) on keybase.
  • I have a public key whose fingerprint is CB3E C2DC AD18 0C78 731E C034 00D8 3189 AB6C 9CA3

To claim this, I am signing this object:

@terrywang
terrywang / config
Last active October 13, 2022 20:39
Secure Enhanced ~/.ssh/config OpenSSH client per-user configuration file
# User ssh configuration file ~/.ssh/config
# Gist https://gist.github.com/terrywang/3997931
# man ssh_config for more information
# Inspired by the blog post below to fight the NSA
# https://stribika.github.io/2015/01/04/secure-secure-shell.html
# Github needs diffie-hellman-group-exchange-sha1 some of the time but not always
# Host github.com
# KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1
@terrywang
terrywang / vimcasts.sh
Last active May 19, 2021 15:46
Vimcasts screencasts download bash one-liner - please support Drew Neil if possible e.g. buy Practical Vim ;-D
for (( i=1; i<=76; i++ )); do file=$(curl -s http://media.vimcasts.org/videos/$i/ | grep m4v | awk '{ print $5 }' | cut -d'>' -f2 | cut -d'<' -f1); url=http://media.vimcasts.org/videos/$i/$file; echo $url; wget -c -S -O "$c-$file" "$url"; done
@terrywang
terrywang / nginx.conf
Last active July 28, 2022 23:29
Nginx config file template for self-hosted personal site on Fedora, Ubuntu, Debian and Arch Linux
# User and group used by worker processes
# ubuntu
# user www-data;
# fedora
user nginx;
# Ideally # of worker processes = # of CPUs or cores
# Set to auto to autodetect
# max_clients = worker_processes * worker_connections
worker_processes auto;
@terrywang
terrywang / match.java
Created February 17, 2014 02:39
Java code backup ;-) To Compile: javac Match.java Usage: java Match <pattern> <text>
/**
* The Match class implements Brute Force pattern matching.
*
* @author Terry Wang
* @version 0.2
*/
public class Match {
/** variable to record the position of matching */
private static int position = 0;