Skip to content

Instantly share code, notes, and snippets.

View quinncomendant's full-sized avatar

Quinn Comendant quinncomendant

View GitHub Profile
@quinncomendant
quinncomendant / spamdyke-sender-conf
Created May 6, 2017 07:37
Create a custom sender config file for spamdyke using a template
#!/usr/bin/env bash
#
# Quinn Comendant <quinn@strangecode.com>
# 06 May 2017 14:45:53
#
# Functions
#
@quinncomendant
quinncomendant / Analytics.inc.php
Last active September 7, 2017 07:28
Class for server-side submission of data to Google Analytics
<?php
/*
* Analytics.inc.php
*
* Class for server-side submission of data to Google Analytics.
* TODO: Would be better to save the request to a queue to process submissions in the background. Currently, requests are blocked until the POST to GA completes or timeout is reached.
*
* @author Quinn Comendant <quinn@strangecode.com>
* @version 1.0
* @since 24 Aug 2014 15:35:43
@quinncomendant
quinncomendant / install-dnscrypt-proxy.md
Last active March 3, 2023 01:42
Instructions to install dnscrypt-proxy via Homebrew on macOS

Prevent DNS leaks on macOS by using dnscrypt-proxy. dnscrypt-proxy is available for installation via Homebrew, and comes configured to use OpenDNS servers. After installing, dnscrypt-proxy will always run in the background and encrypt all your DNS queries:

  1. Open Terminal.app (press Command+Space and type terminal and hit return).
  2. If you don't already have Homebrew installed, install it by copy–pasting the following line in Terminal app and press enter/return key. Wait for the command to finish.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Install dnscrypt-proxy by running:
brew install dnscrypt-proxy

A list of contractions from divinewrite and a regex to find and eradicate the more unseemly from your documents (remember to use a case-insensitive search).

Regex to catch both the “least formal” and “less formal” contractions:

\b((could|how|might|must|should|that|what|when|where|why|would|it)n?['‘’](d|ll|re|ve)|why['‘’]s|we['‘’](d|re|ve|ll)|s?he['‘’](s|d|ll)|(where|how|when|who)['‘’](s)|(who|you|it)['‘’](d)|(they|who)['‘’](ll|ve)|(might|must)n['‘’]t|i'd)\b

Least formal

Regex to catch these:

@quinncomendant
quinncomendant / qmail-queue-wrapper.pl
Created May 24, 2018 09:58
This is Peter Samuel’s script, adapted to prepend a X-AuthUser header for mail sent via mailchannels.com
#!/usr/bin/perl -w
#
# $Id: qmail-queue-wrapper.pl,v 1.3 2007/03/06 14:55:09 psamuel Exp $
#
# qmail-queue wrapper program.
#
# This program should be used when you wish to manipulate a mail
# message BEFORE it is placed in the queue. Possible uses include:
#
# - header rewriting
@quinncomendant
quinncomendant / Autosave.js
Created September 3, 2019 07:55
Autosave module makes it easy to save and load form values in localStorage.
//
// Maintain state of form values across page loads with localStorage.
//
// eslint-disable-next-line no-unused-vars
var Autosave = (function ($) {
'use strict';
//
// Options
//
@quinncomendant
quinncomendant / chrome-webstore-dl.sh
Created February 13, 2021 00:16
Downloads a chrome extension matching ExtensionID to ~/src/chrome-webstore-{ExtensionID}
#!/usr/bin/env bash
#
# Quinn Comendant <quinn@strangecode.com>
# 29 Sep 2017 16:09:21
#
# Functions
#
@quinncomendant
quinncomendant / convert-hms-to-s.php
Created November 2, 2021 19:02
Convert Period of Time values (e.g., 1h15m30s) to seconds. Converts all values in stdin and sends to stdout.
#!/usr/bin/php
<?php
$content = trim(file_get_contents('php://stdin', 'r'));
preg_match_all('/\b((?:[\d]+h)?(?:[\d]+m)?(?:[\d]+s))\b/i', $content, $matches, PREG_PATTERN_ORDER);
foreach ($matches[1] as $PTtime) {
$start = new DateTime();
$end = clone $start;
$end->add(new DateInterval(sprintf('PT%s', strtoupper($PTtime))));
$elapsed = $end->getTimestamp() - $start->getTimestamp();
$content = preg_replace(sprintf('/\b%s\b/', $PTtime), $elapsed, $content);
<?php
/*
* Set timezone used internally by PHP. See full list at https://www.php.net/manual/en/timezones.php
*
* @access public
* @param string $tz Timezone, e.g., America/Mexico_City
* @return
* @author Quinn Comendant <quinn@strangecode.com>
* @since 28 Jan 2019 16:38:38
@quinncomendant
quinncomendant / cpu-threshold-alert-microsoft-edge
Last active September 18, 2022 14:40
Detect if Microsoft Edge has been using more than 90% CPU continuously.
#!/usr/bin/env bash
# Microsoft Edge on macOS sometimes will get stuck using 100% CPU endlessly, requiring a relaunch to stop.
# See issue at https://techcommunity.microsoft.com/t5/discussions/edge-browser-100-cpu-requires-force-quit-macos-mojave-and-v91-0/m-p/2441462/highlight/true#M48074
#
# This script will display a macOS notification if Microsoft Edge has been using more
# than 90% CPU continuously for more than 10 minutes. It only checks the main
# Microsoft Edge process, not the Microsoft Edge Helper processes.
#
# Save it to ~/bin/cpu-threshold-alert-microsoft-edge