Сервер
Проверено на Ubuntu 18.04.4 LTS
Настройка root
Подключаемся
ssh root@IP
const crypto = require('crypto'); | |
const fs = require('fs'); | |
/** | |
* @typedef {object} HashFileOptions | |
* @prop {string} [algorithm = 'md5'] алгоритм хеширования | |
* @prop {crypto.HexBase64Latin1Encoding} [encoding = 'hex'] предствалние конечного хеша | |
*/ | |
/** |
/* | |
conf: Falsy Values 2015 | |
author: Kornel Lesinski | |
theme: And .then() what? Promise programming patterns | |
link: https://www.youtube.com/watch?v=KrhQE8K2I7Q | |
*/ | |
// 1 waterfall. Использование результатов предыдущих промисов | |
doFirst() | |
.then(firstResult => { |
Проверено на Ubuntu 18.04.4 LTS
Подключаемся
ssh root@IP
<div style="margin:0; color:#fff; display:none !important; font-family:arial; font-size:1px; line-height:0;">
Прехедер
git config --global user.name "Your Name"
git config --global user.email "your_email@whatever.com"
Для Unix
node.js line number stream.
https://2ality.com/2019/11/nodejs-streams-async-iteration.html, https://github.com/deanhume/streams
This is an alternative to the Modern Script Loading tchnique, that doesn't need to wait for the load
event.
This technique has been successfully tested down to IE9.
<!DOCTYPE html>
<html lang="en">
<head>
const path = require('path') | |
const fs = require('fs').promises | |
async function walk(fsPath, callback) { | |
const node = { | |
path: fsPath, | |
stat: await fs.stat(fsPath) | |
} | |
const stack = [node] | |
let item |
:root { | |
--ease-in-quad: cubic-bezier(0.55, 0.085, 0.68, 0.53); | |
--ease-in-cubic: cubic-bezier(0.55, 0.055, 0.675, 0.19); | |
--ease-in-quart: cubic-bezier(0.895, 0.03, 0.685, 0.22); | |
--ease-in-quint: cubic-bezier(0.755, 0.05, 0.855, 0.06); | |
--ease-in-expo: cubic-bezier(0.95, 0.05, 0.795, 0.035); | |
--ease-in-circ: cubic-bezier(0.6, 0.04, 0.98, 0.335); | |
--ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94); | |
--ease-out-cubic: cubic-bezier(0.215, 0.61, 0.355, 1); | |
--ease-out-quart: cubic-bezier(0.165, 0.84, 0.44, 1); |