How to setup Let's Encrypt for Nginx on Ubuntu 18.04 (including IPv6, HTTP/2 and A+ SLL rating)
Virtual hosts
Let's say you want to host domains first.com
and second.com
.
Create folders for their files:
const canvasSketch = require('canvas-sketch'); | |
const { lerp } = require('./util/math'); | |
const settings = { | |
animate: true, | |
duration: 3, | |
dimensions: [ 640, 640 ], | |
scaleToView: true, | |
playbackRate: 'throttle', | |
fps: 24 |
# Add this file to your /etc/nixos/configuration.nix `imports = [ ... ];` attribute. | |
# | |
# After running `nixos-rebuild switch`, `systemctl --user start keybase-gui.service` | |
# can be used to start the Keybase GUI. | |
# | |
# Not sure if it's just my tiling window manager, but there is a bit of wonkiness | |
# with the tray icon. Other than that it works perfectly (as of 2017/11/22). | |
{ pkgs, ... }: |
<!-- | |
Complete feature detection for ES modules. Covers: | |
1. Static import: import * from './foo.js'; | |
2. Dynamic import(): import('./foo.js').then(module => {...}); | |
Demo: http://jsbin.com/tilisaledu/1/edit?html,output | |
Thanks to @_gsathya, @kevincennis, @rauschma, @malyw for the help. | |
--> |
/** | |
* Base contract that all upgradeable contracts should use. | |
* | |
* Contracts implementing this interface are all called using delegatecall from | |
* a dispatcher. As a result, the _sizes and _dest variables are shared with the | |
* dispatcher contract, which allows the called contract to update these at will. | |
* | |
* _sizes is a map of function signatures to return value sizes. Due to EVM | |
* limitations, these need to be populated by the target contract, so the | |
* dispatcher knows how many bytes of data to return from called functions. |
Let's say you want to host domains first.com
and second.com
.
Create folders for their files:
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 S_ = f => g => x => f (g (x)) (x) | |
const S2 = f => g => h => x => f (g (x)) (h (x)) |
# First install https://github.com/flazz/semver | |
# With this script, you can run "vminor add more cowbell" or just "vminor" | |
function vbump() { | |
level=$1 | |
semver inc $level | |
shift | |
git tag -a $(semver tag) -m "${*:-bump}" | |
git tag -n9 | grep `git describe` # show annotated | |
} |
A lot of people mentioned other immutable JS libraries after reading my post. I thought it would be good to make a list of available ones.
There are two types of immutable libraries: simple helpers for copying JavaScript objects, and actual persistent data structure implementations. My post generally analyzed the tradeoffs between both kinds of libraries and everything applies to the below libraries in either category.
Libraries are sorted by github popularity.
/*eslint-env es6 */ | |
// Inspired by the paper "A tutorial on the universality and | |
// expressiveness of fold" by Graham Hutton (available at | |
// http://www.cs.nott.ac.uk/~gmh/fold.pdf), implementing some generic | |
// list handling functions in JavaScript in terms of `fold`. | |
// Personally I had an enlightnening moment when I realised the | |
// beautiful interplay of cons lists and foldr during the FP101x | |
// Haskell course. JavaScript's syntax doesn't make this very apparent |