I hereby claim:
- I am pjdelport on github.
- I am pjdelport (https://keybase.io/pjdelport) on keybase.
- I have a public key whose fingerprint is 5A44 5F43 932D FC9D 883B 84ED 1329 29ED A54F 5DCB
To claim this, I am signing this object:
// ==UserScript== | |
// @name GitLab Draft Comments | |
// @description Alert for and list forgotten GitLab draft comments. | |
// @namespace https://github.com/PiDelport/ | |
// @author Pi Delport <pjdelport@gmail.com> | |
// @version 1.0 | |
// @license MIT | |
// @homepageURL https://gist.github.com/PiDelport/74453fa91872a9e51c7858550ff3cab3 | |
// | |
// @grant GM.registerMenuCommand |
# Well-known hosts | |
# https://gist.github.com/PiDelport/8a327a46c4453941bedfea5e8269f980 | |
# https://blog.bitbucket.org/2018/07/02/new-ip-addresses-bitbucket-cloud/ | |
bitbucket.org,18.205.93.0/25,13.52.5.0/25 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw== | |
# GitHub | |
# https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints | |
# https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/about-githubs-ip-addresses |
-- Sequence a list of Either-yielding monadic actions. | |
-- Sequencing stops on the first Left value, or yields a list successful Right values. | |
sequenceRights :: Monad m => [m (Either e t)] -> m (Either e [t]) | |
sequenceRights [] = pure (pure []) | |
sequenceRights (x:xs) = handle =<< x | |
where | |
handle (Left e) = pure (Left e) | |
handle (Right t) = (t:) <<$>> sequenceRights xs | |
module Chain where | |
import Control.Applicative | |
import Data.List (tails, unfoldr) | |
import System.Random (RandomGen, newStdGen, randomR) | |
import qualified Data.Map.Strict as M | |
import Data.Sequence as S (Seq, (><), (|>)) | |
import qualified Data.Sequence as S |
I hereby claim:
To claim this, I am signing this object:
;;; Analogous to lambda, but curried. | |
(define-syntax curried | |
(syntax-rules () | |
((curried () body ...) (lambda () body ...)) | |
((curried (arg) body ...) (lambda (arg) body ...)) | |
((curried (arg args ...) body ...) | |
(lambda (arg . rest) | |
(let ((next (curried (args ...) body ...))) | |
(if (null? rest) | |
next |
import inspect | |
def format_call(func, *positional, **named): | |
_locals = inspect.getcallargs(func, *positional, **named) | |
spec = inspect.getargspec(func) | |
argvalues = inspect.formatargvalues(spec.args, spec.varargs, spec.keywords, _locals) | |
return '{}{}'.format(func.__name__, argvalues) |
#!/usr/bin/env python | |
""" | |
Running:: | |
python pkg_tree.py | dot -Txlib | |
Requires `pydot`. | |
""" | |
import pkg_resources |
#!/bin/sh -e | |
dist="tinymce_${1:?}.zip" | |
wget -N "http://github.com/downloads/tinymce/tinymce/$dist" | |
unzip "$dist" | |
rm -r tinymce/examples | |
mv tinymce/changelog.txt tinymce_changelog.txt | |
cp -a tinymce/jscripts/tiny_mce/* js/tinymce/resources |