Skip to content

Instantly share code, notes, and snippets.

@monochromer
monochromer / git-date.sh
Last active April 6, 2022 12:13
git get last date commit of files
# https://stackoverflow.com/questions/32893773/how-to-git-log-with-date-time-and-file-names-in-one-line
git log --pretty=%x0a%ci --name-only \
| awk '
/^$/ { dateline=!dateline; next }
dateline { date=$0; next }
!seen[$0]++ { print date,$0 }
'
@monochromer
monochromer / form-data-to-json.js
Last active January 22, 2022 13:34
Serialize `FormData` to JSON
// https://jakearchibald.com/2021/encoding-data-for-post-requests/
function formToObject(formData) {
return Object.fromEntries(
[...new Set(formData.keys())]
.map((key) => [key, formData.getAll(key)]),
);
}
@monochromer
monochromer / delete-line.sh
Created April 22, 2021 05:05
Удаление строки в нескольких файлах
sed -i '' '/line-with-text-to-delete/d' **/*.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">
@monochromer
monochromer / easings.css
Created July 24, 2020 06:45 — forked from argyleink/easings.css
Handy CSS properties for easing functions
: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);
@monochromer
monochromer / html-stream-generator.js
Last active April 4, 2023 16:54
WIP. Потоковая выдача html через генераторы
function isGenerator(target) {
return target[Symbol.toStringTag] === 'GeneratorFunction';
}
function isIterable(obj) {
if (obj === null || obj === void 0) {
return false;
}
if (typeof obj === 'string') {
@monochromer
monochromer / app-example.js
Last active March 18, 2021 04:21
Веб-сервер на Node.js как итератор, как поток
const http = require('http');
const { once } = require('events');
class WebServer extends http.Server {
async *[Symbol.asyncIterator]() {
while (this.listening) {
const [ req, res ] = await once(this, 'request');
yield { req, res };
}
}
@monochromer
monochromer / notes.md
Last active January 10, 2025 10:28
Настройка веб-сервера

Сервер

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

Настройка root

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

ssh root@IP