Skip to content

Instantly share code, notes, and snippets.

View rockymadden's full-sized avatar
:octocat:
Setting status

Rocky Madden rockymadden

:octocat:
Setting status
  • UiPath
  • Pale Blue Dot
View GitHub Profile

name: inverse layout: true class: center, middle, inverse


#Gist => Deck


Keybase proof

I hereby claim:

  • I am rockymadden on github.
  • I am rockymadden (https://keybase.io/rockymadden) on keybase.
  • I have a public key ASAeoRru5wuha4ttFt1zbI5_qgGIqmPCy4VHntQvOCUnOgo

To claim this, I am signing this object:

@rockymadden
rockymadden / combinators.js
Created February 20, 2018 13:51 — forked from Avaq/combinators.js
Common combinators in JavaScript
const I = x => x;
const K = x => y => x;
const A = f => x => f(x);
const T = x => f => f(x);
const W = f => x => f(x)(x);
const C = f => y => x => f(x)(y);
const B = f => g => x => f(g(x));
const S = f => g => x => f(x)(g(x));
const P = f => g => x => y => f(g(x))(g(y));
const Y = f => (g => g(g))(g => f(x => g(g)(x)));
@rockymadden
rockymadden / dev-portal-pitch.md
Last active February 23, 2016 20:57 — forked from greglindahl/dev-portal.md
Developer Portal pitch

The Pitch

Let's move to a modern approach for our developer documentation and, generally, improve developer experiences by creating a focused developer portal. Let's unify our documentation efforts, use documentation to reduce customer success needs, use documentation to improve experiences, and create a one-stop-shop for anything a developer might need. Additionally, lets make it conceptually simple and easy to maintain and support. This idea is not new, in fact nearly every modern API company uses this approach:

@rockymadden
rockymadden / socat-examples.md
Last active October 30, 2018 00:54
socat examples

Effectively tail a file and serve it up via a browser:

socat -T0.05 -u FILE:/var/log/syslog,ignoreeof TCP4-LISTEN:12345,fork,reuseaddr

Simple file server

@rockymadden
rockymadden / multi_key_crypto.sh
Created October 9, 2015 02:31 — forked from kennwhite/multi_key_crypto.sh
OpenSSL command line recipe for multi-public key file encryption. Any single private key paired to one of the public keys can decrypt the file.
#!/usr/bin/env bash
#
# Example of multiple key AES encryption for text files using the openssl v. 0.9.8+ command line utility
# Uses n public certs as key for MIME PKCS envelope, any individual private key can decrypt.
#
# If standard RSA ssh keys exist, these can be converted to public certs as well (and ssh keys can decrypt)
#
# To sign (and verify) the encrypted file, one of the private keys is required, see:
# http://www.openssl.org/docs/apps/smime.html#EXAMPLES for openssl smime examples
# or http://www.openssl.org/docs/apps/cms.html#EXAMPLES for cms utility (OpenSSL v. 1.0+)
@rockymadden
rockymadden / hubdecrypt.sh
Created October 9, 2015 02:31 — forked from rgbkrk/hubdecrypt.sh
Encrypt a (short) file using someone's public key from github
#!/usr/bin/env bash
# HubCrypt
# ========
#
# Decrypt a file encrypted using hubencrypt (ok, it's just openssl + rsautl +
# your SSH keys). It needs the private key that matches your last public key
# listed at github.com/<user>.keys
#
@rockymadden
rockymadden / bcrypt-cost-guidelines-moores-law.md
Last active August 27, 2015 17:57
bcrypt cost guidelines based upon moose's law
Date Iterations Cost
1/1/2000 64 6
7/1/2001 128 7
1/1/2003 256 8
7/1/2004 512 9
1/1/2006 1,024 10
6/1/2007 2,048 11
1/1/2009 4,096 12
6/1/2010 8,192 13
@rockymadden
rockymadden / csp-pong.js
Last active August 29, 2015 14:16
CSP based pong in ES6 JavaScript.
"use strict";
const csp = require("js-csp");
const setup = (table) => {
const player = function*(name) {
let ball;
while((ball = yield csp.take(table)) !== csp.CLOSED) {
ball.hits += 1;