Skip to content

Instantly share code, notes, and snippets.

View bingo347's full-sized avatar

Dmitry Belyaev bingo347

View GitHub Profile
@bingo347
bingo347 / computable.ts
Last active August 1, 2021 16:00
Typescript arithmetic example
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
@bingo347
bingo347 / globalThis-polyfill.js
Created March 19, 2020 13:23
globalThis simple polyfil
(() => {
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;
})();
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();
}
@bingo347
bingo347 / tmux-cheat-sheet.sh
Last active March 19, 2020 13:27
tmux-cheat-sheet
#!/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'
@bingo347
bingo347 / solution.md
Created December 19, 2019 13:24
node-gyp on windows problem with UnicodeDecodeError

node-gyp on windows problem with UnicodeDecodeError

Reason

  • 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)
@bingo347
bingo347 / mutate.rs
Last active July 4, 2019 03:45
Rust macro for mutate immutable variables
macro_rules! mutate {
($($var:ident),+ $code:block) => {
let ($($var,)+) = {
let ($(mut $var,)+) = ($($var,)+);
$code;
($($var,)+)
};
};
}
@bingo347
bingo347 / matrix2spiral.js
Last active July 12, 2017 00:50
Transform matrix to spiral-path vector
'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;