Skip to content

Instantly share code, notes, and snippets.

View dcorking's full-sized avatar

David Corking dcorking

View GitHub Profile
@dduvnjak
dduvnjak / add_cloudflare_ips.sh
Last active August 8, 2025 10:19
Add CloudFlare IP addresses to an EC2 Security Group using awscli
# first we download the list of IP ranges from CloudFlare
wget https://www.cloudflare.com/ips-v4
# set the security group ID
SG_ID="sg-00000000000000"
# iterate over the IP ranges in the downloaded file
# and allow access to ports 80 and 443
while read p
do
@CMCDragonkai
CMCDragonkai / curl_custom_dns.sh
Last active May 13, 2025 02:45
cURL: Selecting a custom DNS server to resolve domain names
#!/usr/bin/env bash
# this can be useful when developing against a custom DNS server, or
# for example, if you made a change to the DNS settings of a domain, and you
# know the authoritative nameserver IP address for a domain, you could use this
# to bypass the intermediate DNS cache, and apply an HTTP request using the new
# DNS settings supplied by your specified (authoritative) nameserver
curl --dns-servers <DNSIP,DNSIP> url.com
@benlinton
benlinton / multiple_mysql_versions_for_development.md
Last active August 15, 2025 21:37
Multiple MySQL Versions with Homebrew

Multiple MySQL Versions for Development

Options included below:

  • Using Docker docker-compose
  • Using Homebrew brew

Using Docker (recommended)

This gist was originally created for Homebrew before the rise of Docker, yet it may be best to avoid installing mysql via brew any longer. Instead consider adding a barebones docker-compose.yml for each project and run docker-compose up to start each project's mysql service.

@daniellevass
daniellevass / littlebits.md
Last active October 23, 2016 05:04
littlebits hack day @ bristol

##1 starting

Firstly, using terminal install YQL and request if you don't have it already:

npm install request
npm install yql

Create a new .js file - make sure you can navigate to it with the terminal prompt to run.

@kdzwinel
kdzwinel / main.js
Last active May 7, 2025 17:06
List all undefined CSS classes
/*
This script attempts to identify all CSS classes mentioned in HTML but not defined in the stylesheets.
In order to use it, just run it in the DevTools console (or add it to DevTools Snippets and run it from there).
Note that this script requires browser to support `fetch` and some ES6 features (fat arrow, Promises, Array.from, Set). You can transpile it to ES5 here: https://babeljs.io/repl/ .
Known limitations:
- it won't be able to take into account some external stylesheets (if CORS isn't set up)
- it will produce false negatives for classes that are mentioned in the comments.
@squarism
squarism / iterm2.md
Last active August 24, 2025 14:37
An iTerm2 Cheatsheet

Tabs and Windows

Function Shortcut
New Tab + T
Close Tab or Window + W (same as many mac apps)
Go to Tab + Number Key (ie: ⌘2 is 2nd tab)
Go to Split Pane by Direction + Option + Arrow Key
Cycle iTerm Windows + backtick (true of all mac apps and works with desktops/mission control)
@lopezpdvn
lopezpdvn / install-fahclient-linux-systemd-service-unit.md
Last active January 14, 2023 07:21
Install Folding@home FAHClient on Linux as a systemd service unit

Install Folding@home FAHClient on Linux as a systemd service unit

Republished on my website, keeping this version here for historical reasons.

Install FAHClient as documented in the official guide. Stop the traditional init script service that was created and automatically started.

@cole007
cole007 / freelance-2014.csv
Last active July 3, 2025 16:58
Freelance Rates 2014 (@asclearasmud)
Where are you based in the UK? How would you describe what you do? Is your primary skill set(s) How old are you? How many years have you been a web professional? How many years have you been freelance? What is your DAY (not hourly) rate? DAY RATE (clean) What is your HOUR (not daily) rate? HOUR RATE (clean) How do you primarily charge clients? Do you normally request a deposit before starting work on a project? Do you normally use a contract? Do you mostly work … What is the average value of projects you work on? What is your gender? Do you primarily charge a fixed rate or does your rate vary between clients? What is the average amount of time spent working on a project? How many projects do you tend to work on at any on time? What is your normal invoicing terms? Where do you primarily work? On average, how many hours a day do you normally work? On average, how many days a week do you normally work? Do you have an accountant? What accounting software do you use, if any? Accounting software (clean) Is fr
@steve-jansen
steve-jansen / export-zone.sh
Created December 15, 2014 19:11
Export DNS records from Rackspace Cloud DNS to zone files on disk
#!/bin/bash
# exports DNS records from Rackspace Cloud DNS to text files
# Depends on https://github.com/wichert/clouddns/blob/master/src/clouddns.py
set -e
me=export-zone
base_domain=
rackspace_region=
rackspace_rate_limit_delay=3

The thing that students have the hardest time on when learning functional programming is how to process a recursive structure while maintaining some sort of "state", the result if you will. I'll attempt here to demystify the process.

Functional programming languages almost always use a lot of recursively defined structures. Depending on the language those can be implemented in various ways, but in any case the end result is the same. A structure of this type is either an "atom", i.e. an irreducible thing, or a "compound" consisting of substructures of the same form.

For example a "list" is either an Empty/Nil list (the "atom") or it is formed as a Cons of a value and another list (compound form). That other "sublist" can itself be empty or another cons and so on and so forth. A tree is similar. It is either empty, or it consists of a triple of a value and two sub-trees, left and right.

Almost every problem we encounter is a question about doing something with all entries in a structure. To solve these prob