Skip to content

Instantly share code, notes, and snippets.

View ruddfawcett's full-sized avatar

Rudd Fawcett ruddfawcett

View GitHub Profile
@ruddfawcett
ruddfawcett / Abstract - CachedProperties.md
Created October 5, 2020 20:12 — forked from pauljohanneskraft/Abstract - CachedProperties.md
cache a complicated computed property using the following pattern

Cached Properties

Complicated, time expensive computed properties can be cached using the following pattern.

var a = Cached(0) {
    (a: Int) -> Int in
    print("did calculate")
    return a + 100
}
@ruddfawcett
ruddfawcett / APIClient+PromiseKit.swift
Created April 30, 2020 23:32 — forked from DanielCardonaRojas/APIClient+PromiseKit.swift
Custom API Client Abstractions inspired by http://kean.github.io/post/api-client but with no third party dependencies. As a lib over here -> https://github.com/DanielCardonaRojas/APIClient
import PromiseKit
extension APIClient {
func request<Response, T>(_ requestConvertible: T,
additionalHeaders headers: [String: String]? = nil,
additionalQuery queryParameters: [String: String]? = nil,
baseUrl: URL? = nil) -> Promise<T.Result>
where T: URLResponseCapable, T: URLRequestConvertible, T.Result == Response {
return Promise { seal in
self.request(requestConvertible, additionalHeaders: headers, additionalQuery: queryParameters, success: { response in
@ruddfawcett
ruddfawcett / simple-json-reponse.php
Created August 22, 2017 19:48 — forked from james2doyle/simple-json-reponse.php
A simple JSON response function for PHP. Used in various PhileCMS plugins.
<?php
function json_response($message = null, $code = 200)
{
// clear the old headers
header_remove();
// set the actual code
http_response_code($code);
// set the header to make sure cache is forced
header("Cache-Control: no-transform,public,max-age=300,s-maxage=900");
@ruddfawcett
ruddfawcett / Gruntfile.js
Created November 9, 2016 01:36 — forked from inkbase/Gruntfile.js
A Gruntfile to set up a Sass/Pug project
module.exports = function(grunt) {
// configure the tasks
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
// copy from the source directory to build
copy: {
build: {
cwd: 'source',
src: [ '**', '!**/*.pug', '!sass', '!sass/*', '!**/*.scss', '!partials', '!partials/*' ],
dest: 'build',
@ruddfawcett
ruddfawcett / Slimdown.md
Created August 5, 2016 19:38 — forked from jbroadway/Slimdown.md
Slimdown - A simple regex-based Markdown parser.

Slimdown

A very basic regex-based Markdown parser. Supports the following elements (and can be extended via Slimdown::add_rule()):

  • Headers
  • Links
  • Bold
  • Emphasis
  • Deletions
@ruddfawcett
ruddfawcett / enum-access.js
Created July 15, 2016 04:44 — forked from bnoguchi/enum-access.js
How to access enumValues in mongoose from a Model or Document
var mongoose = require('./index')
, TempSchema = new mongoose.Schema({
salutation: {type: String, enum: ['Mr.', 'Mrs.', 'Ms.']}
});
var Temp = mongoose.model('Temp', TempSchema);
console.log(Temp.schema.path('salutation').enumValues);
var temp = new Temp();
console.log(temp.schema.path('salutation').enumValues);
@ruddfawcett
ruddfawcett / email-blacklist.json
Last active November 2, 2015 08:28 — forked from tbrianjones/free_email_provider_domains.txt
A list of free email provider domains. Some of these are probably not around anymore. I've combined a dozen lists from around the web. Current "major providers" should all be in here as of the date this is created.
["1033edge.com","11mail.com","123.com","123box.net","123india.com","123mail.cl","123qwe.co.uk","150ml.com","15meg4free.com","163.com","1coolplace.com","1freeemail.com","1funplace.com","1internetdrive.com","1mail.net","1me.net","1mum.com","1musicrow.com","1netdrive.com","1nsyncfan.com","1under.com","1webave.com","1webhighway.com","212.com","24horas.com","2911.net","2bmail.co.uk","2d2i.com","2die4.com","3000.it","321media.com","37.com","3ammagazine.com","3dmail.com","3email.com","3xl.net","444.net","4email.com","4email.net","4mg.com","4newyork.com","4x4man.com","5iron.com","5star.com","88.am","8848.net","888.nu","97rock.com","aaamail.zzn.com","aamail.net","aaronkwok.net","abbeyroadlondon.co.uk","abcflash.net","abdulnour.com","aberystwyth.com","abolition-now.com","about.com","academycougars.com","acceso.or.cr","access4less.net","accessgcc.com","ace-of-base.com","acmecity.com","acmemail.net","acninc.net","adelphia.net","adexec.com","adfarrow.com","adios.net","ados.fr","advalvas.be","aeiou.pt","aemail4u.com","aene
import praw # simple interface to the reddit API, also handles rate limiting of requests
import re
from collections import deque
from time import sleep
USERNAME = "Your username here"
PASSWORD = "Your password here"
USERAGENT = "Your useragent string here. It should include your /u/username as a courtesy to reddit"
r = praw.Reddit(USERAGENT)
#########################
# .gitignore file for Xcode4 / OS X Source projects
#
# Version 2.0
# For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
#
# 2013 updates:
# - fixed the broken "save personal Schemes"
#
# NB: if you are storing "built" products, this WILL NOT WORK,