ANSI Escape Sequences
Standard escape codes are prefixed with Escape
:
- Ctrl-Key:
^[
- Octal:
\033
- Unicode:
\u001b
- Hexadecimal:
\x1B
- Decimal:
27
Standard escape codes are prefixed with Escape
:
^[
\033
\u001b
\x1B
27
# The approach is to mark packets from a specific user, | |
# create a dedicated routing table with a default route | |
# through the VPN, and force all marked packets to be | |
# routed using that table. | |
# | |
# Sources: | |
# https://www.niftiestsoftware.com/2011/08/28/making-all-network-traffic-for-a-linux-user-use-a-specific-network-interface/ | |
# http://freeaqingme.tweakblogs.net/blog/9340/netflix-using-a-vpn-for-just-one-application.html | |
# In this guide |
// Copied from https://github.com/heya/dom under BSD-3 and slightly modified. | |
// create.js | |
// Dojo-inspired set of DOM utilities | |
export const namespaces = { | |
svg: 'http://www.w3.org/2000/svg', | |
xlink: 'http://www.w3.org/1999/xlink', | |
ev: 'http://www.w3.org/2001/xml-events', | |
xml: 'http://www.w3.org/XML/1998/namespace' |
// a facelift of the venerable on.js: slightly modified for ES6, removed dead browsers | |
// copied from https://github.com/clubajax/on, used under the MIT license | |
// internal utilities | |
const getNodeById = id => { | |
const node = document.getElementById(id); | |
if (!node) { | |
console.error('`on` Could not find:', id); | |
} |
Unless otherwise noted (either in this file or in a file's copyright section) the contents of this gist are Copyright ©️2020 by Christopher Allen, and are shared under spdx:Creative Commons Attribution Share Alike 4.0 International (CC-BY-SA-4.) open-source license.
If you more tips and advice like these, you can become a monthly patron on my GitHub Sponsor Page for as little as $5 a month; and your contributions will be multipled, as GitHub is matching the first $5,000! This gist is all about Homebrew, so if you like it you can support it by donating to them or becoming one of their Github Sponsors.
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8" /> | |
<title>Multi-page print test</title> | |
<!-- | |
Print to PDF, landscape, letter size, no margins, enable background graphics. | |
Tested on Chrome. | |
--> | |
<style> |
const rep = (str, n) => { | |
if (n < 1 || !str) return ''; | |
let result = ''; | |
for (;;) { | |
if (n & 1) { | |
result += str; | |
} | |
n >>= 1; | |
if (n < 1) break; | |
str += str; |
'use strict'; | |
// from https://gist.github.com/uhop/d87365fac38ba6b8cbf0b890d0c2258e | |
const noop = () => {}; | |
class DndMove { | |
static supportedEvents = { | |
pointerup: 'onPointerUp', | |
pointermove: 'onPointerMove', |
// runs asynchronous operations in parallel, no more than a specified number at a time | |
// it takes an array of functions, which return promises when invoked without arguments | |
// modelled after Promise.all() | |
const wrap = value => { | |
if (typeof value == 'function') return value(); | |
if (value && typeof value.then == 'function') return value; // thenable | |
return Promise.resolve(value); | |
}; |
<!DOCTYPE html> | |
<html> | |
<head> | |
<title>DnD test bed - grouping</title> | |
<link rel="stylesheet" href="./dnd.css" /> | |
</head> | |
<body> | |
<h1>DnD test bed - grouping</h1> | |
<div class="container"> | |
<div class="item dnd-item dnd-handle">One</div> |