Skip to content

Instantly share code, notes, and snippets.

@monochromer
monochromer / hash-lib.js
Last active Nov 23, 2020
node.js hashing files
View hash-lib.js
const crypto = require('crypto');
const fs = require('fs');
/**
* @typedef {object} HashFileOptions
* @prop {string} [algorithm = 'md5'] алгоритм хеширования
* @prop {crypto.HexBase64Latin1Encoding} [encoding = 'hex'] предствалние конечного хеша
*/
/**
@monochromer
monochromer / promise-patterns.js
Last active Oct 31, 2020
Паттерны использования promise (Promise Patterns)
View promise-patterns.js
/*
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 => {
@monochromer
monochromer / notes.md
Last active Oct 13, 2020
Настройка веб-сервера
View notes.md

Сервер

Проверено на Ubuntu 18.04.4 LTS

Настройка root

Подключаемся

ssh root@IP
@monochromer
monochromer / README.md
Last active Sep 21, 2020
Вёрстка писем от HTMLAcademy
View README.md

Конспект

Отображение мета-информации в почтовом клиенте

  1. Указываем название компании строчными буквами (конечно, с первой заглавной), или же обращаемся лично либо от лица сотрудника компании. Пишем email отправителя, соответствующий его названию. Личное письмо от кого-то из компании — личный email, например, v.kozyrev@site.ru, информационное письмо — email от компании по типу info@site.ru, промоакция — promo@site.ru и т. д.
  2. Обозначаем тему, которая донесёт суть письма.
  3. Если темой невозможно полностью раскрыть суть — дополняем её прехедером.
<div style="margin:0; color:#fff; display:none !important; font-family:arial; font-size:1px; line-height:0;">
  Прехедер
View git-notes.md

GIT

Подготовка

git config --global user.name "Your Name"
git config --global user.email "your_email@whatever.com"

Для Unix

View differential-js-loader.md

This is an alternative to the Modern Script Loading tchnique, that doesn't need to wait for the load event.

Compatibility

This technique has been successfully tested down to IE9.

<!DOCTYPE html>
<html lang="en">
<head>
@monochromer
monochromer / index.js
Last active Jul 27, 2020
Walk directory on node.js without recursion
View index.js
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
@monochromer
monochromer / easings.css
Created Jul 24, 2020 — forked from argyleink/easings.css
Handy CSS properties for easing functions
View easings.css
: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);