- node-gyp writen in python
- python have 2 mode for work with strings - unicode and ascii
- node-gyp use ascii mode
- windows use utf-8 for paths
- python throw UnicodeDecodeError for chars out of range 0..127 (Cyrillic chars for example)
package main | |
import ( | |
"net" | |
"fmt" | |
"syscall" | |
) | |
func main() { | |
addr, err := net.ResolveTCPAddr("tcp", "localhost:8090") |
(() => { | |
const isNotUndefined = typeofResult => typeofResult !== 'undefined'; | |
if(isNotUndefined(typeof globalThis) && globalThis.globalThis === globalThis) { return; } | |
const g = (isNotUndefined(typeof window) && window) | |
|| (isNotUndefined(typeof global) && global) | |
|| (isNotUndefined(typeof self) && self) | |
|| Function('return this')(); | |
g.globalThis = g; | |
})(); |
Slides
[Sum example](https://www.typescriptlang.org/play?target=99&jsx=0#code/C4TwDgpgBAKhDOwoF4oGUCuBbAPAJgEYAWAZgBooCB2IgPgG4AoAYwHsA7RKYBYALli8UUAOR4S1EUzackPRAFEATktZKBcLqjESAHFMaNQkKACEAhvACW8YQG0CFPBXJQiFAKwUAbBSoVdCgBOCgAGAF0mY2gAESsAcyskVAtreDt2bAAjCCVIo3BoNGAlK3ZEgDMQHAA5KAgADx52ABNbTKwcpVphAAMAEgBvGoBfXqjCqDjE4ABBFXMQYWLS8qsqnGmk2jt86KmEpIBZczBhQcYoK6g7GKgyg5moS3QSssrqmNpwgRimEYmJjQYAANkkatlcjg0PUmhBWrYBoMOl0xj1UDDGs02q9Vh9NodgLRLtcAPw3NDhElXASYuEIqBIsoVXJTEZDZmsmDmKwgsbU65Xcl2AB0YuBYOAEM6UO5vKgADJGUMUbk0RQ7kqVu91p9Cd8BYKBOwIAA3XKAoqgpLzJSLHCzWHY2xbOYLEAUBStJ3wnGu22LewiUIicLoqCOrG+2x2TlKKYUMUiuOwHkgqmC4Wuk5gW6K3E6jau74UOXpgUCOyhT2tPaTABKZtyPBaqRs5wFeYeruetjb6Ri4R+U3+lseSUwWFsqAugtuBHu7HHwGHs8F11ueEXy+HMS3UYZoUN66FUDXJ4vUBahN+BCYl8v8AAFut+FAKuYQfAIPeH1cRseJ4COef7XNeMwCP2tyEpOA4EOEdiNuaSgtlBe5DnYIjgUkob5KB67Pq+vwwdgcEIUhzYQK2lg2JuGEiIRFTAKGPoMiUGAQIB+FQOS7GcdxF7ETMsHzuRTYoVRaF4PR2HMeErE4kEXECaefHKSpAgfl+P7qf+v56YwAIFEC2CuvAOACjEC4Hn6hJkJZ+70rZMz2YKaAvkxCm2F
type Computable | |
= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | |
| 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | |
| 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | |
| 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | |
| 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | |
| 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | |
| 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 |
#!/bin/bash | |
echo 'tmux new -s <session name>' | |
echo 'tmux attach -t <session name>' | |
echo | |
echo | |
echo 'Ctrl+b - enter command mode' | |
echo | |
echo 'd - detach' | |
echo ', - rename window' |
function addGetParam(url, name, value) { | |
return url + (/\?/.test(url) ? '&' : '?') + encodeURIComponent(name) + '=' + encodeURIComponent(value); | |
} | |
function createXHR(win = window) { | |
if(typeof win.XDomainRequest === 'function') { | |
return new win.XDomainRequest(); | |
} | |
return new win.XMLHttpRequest(); | |
} |
macro_rules! mutate { | |
($($var:ident),+ $code:block) => { | |
let ($($var,)+) = { | |
let ($(mut $var,)+) = ($($var,)+); | |
$code; | |
($($var,)+) | |
}; | |
}; | |
} |
'use strict'; | |
const LEFT = {i: -1, j: 0}; | |
const BOTTOM = {i: 0, j: 1}; | |
const RIGHT = {i: 1, j: 0}; | |
const TOP = {i: 0, j: -1}; | |
function* direction() { | |
var step = 0; | |
for(;;) { |
'use strict'; | |
var rules = {}; | |
var sheet; | |
var nextIndex = 0; | |
void function initStyle() { | |
var el = document.createElement('style'); | |
document.head.appendChild(el); | |
sheet = el.sheet; |