Skip to content

Instantly share code, notes, and snippets.

Avatar
:octocat:
Focusing

Ros Crook KRostyslav

:octocat:
Focusing
View GitHub Profile
@KRostyslav
KRostyslav / latex.template
Created Oct 29, 2020 — forked from michaelt/latex.template
Simple Pandoc default.latex with comments
View latex.template
%!TEX TS-program = xelatex
\documentclass[12pt]{scrartcl}
% The declaration of the document class:
% The second line here, i.e.
% \documentclass[12pt]{scrartcl}
% is a standard LaTeX document class declaration:
% we say what kind of document we are making in curly brackets,
% and specify any options in square brackets.
View docker cmd
# Prune images
$ docker image prune
or
$ docker image prune -a
# Prune containers
$ docker container prune
# Prune volumes
$ docker volume prune
View show and remove node_modules
# =================================
# List all node_modules
# Linux.
$ cd documents
$ find . -name "node_modules" -type d -prune -print | xargs du -chs
# Windows
$ cd documents
$ FOR /d /r . %d in (node_modules) DO @IF EXIST "%d" echo %d"
View lodashToDevtools.js
var elem1 = document.createElement('script');
elem1.src = "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.0/lodash.min.js";
elem1.type = "text/javascript";
document.head.appendChild(elem1);
// Example from https://lodash.com/docs/4.17.11#unionBy
_.unionBy([2.1], [1.2, 2.3], Math.floor);
// => [2.1, 1.2]
@KRostyslav
KRostyslav / Clear localStorage on close tabs or browser
Last active Jun 16, 2020
Clear localStorage on close tabs/browser
View Clear localStorage on close tabs or browser
((nm, tm) => {
const lStorage = localStorage;
const sStorage = sessionStorage;
const tabId = sStorage.getItem(tm)
|| ((newId) => {
sStorage.setItem(tm, newId);
return newId;
})((Math.random() * 1e8).toFixed());
const update = (setTabValue) => {
let currentValue = JSON.parse(lStorage.getItem(nm) || '{}');
@KRostyslav
KRostyslav / tsconfig.json
Last active Apr 15, 2021
tsconfig.json с комментариями.
View tsconfig.json
// Файл "tsconfig.json":
// - устанавливает корневой каталог проекта TypeScript;
// - выполняет настройку параметров компиляции;
// - устанавливает файлы проекта.
// Присутствие файла "tsconfig.json" в папке указывает TypeScript, что это корневая папка проекта.
// Внутри "tsconfig.json" указываются настройки компилятора TypeScript и корневые файлы проекта.
// Программа компилятора "tsc" ищет файл "tsconfig.json" сначала в папке, где она расположена, затем поднимается выше и ищет в родительских папках согласно их вложенности друг в друга.
// Команда "tsc --project C:\path\to\my\project\folder" берет файл "tsconfig.json" из папки, расположенной по данному пути.
// Файл "tsconfig.json" может быть полностью пустым, тогда компилятор скомпилирует все файлы с настройками заданными по умолчанию.
// Опции компилятора, перечисленные в командной строке перезаписывают собой опции, заданные в файле "tsconfig.json".
@KRostyslav
KRostyslav / passwords.md
Created Jan 30, 2018 — forked from zmts/passwords.md
Про хранение паролей в БД
View passwords.md

Про хранение паролей в БД

При создании нового юзера

  1. При регистрации юзер вводит некий пароль
  2. Генерим случайную соль индивилуально для каждого юзера
  3. Создаем хеш на основе введенного юзером пароля и соли
  4. Записываем хеш(не пароль) в БД + соль в отдельном филде

Авторизация существующего юзера

  1. Юзер вводит в поле авторизации некий пароль
@KRostyslav
KRostyslav / tokens.md
Created Jan 30, 2018 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию
View tokens.md

Token-Based Authentication(JWT)

Preconditions:

В данной заметке рассматривается работа JWT с симметичным алгоритмом шифрования (HS256/HS384/HS512)

Основы:

Аутентификация(authentication, от греч. αὐθεντικός [authentikos] – реальный, подлинный; от αὐθέντης [authentes] – автор) - это процесс проверки учётных данных пользователя (логин/пароль). Проверка подлинности пользователя путём сравнения введённого им пароля с паролем, сохранённым в базе данных пользователей;

Авторизация(authorization — разрешение, уполномочивание) - это проверка прав пользователя на доступ к определенным ресурсам.

@KRostyslav
KRostyslav / PUTvsPOSTvsPATCH.md
Created Jan 30, 2018 — forked from zmts/PUTvsPOSTvsPATCH.md
PUT or POST or PATCH?
View PUTvsPOSTvsPATCH.md

PUT or POST or PATCH? PATCH!

TL;DR

POST для создания новых ресурсов
POST для остальных кастомных глаголов
PATCH для обновления ресурсов. В 99,99% на обновление уходят не все поля ('created_at' и 'updated_at' так точно)
На PUT можно забить =)
View script to run localTunnel
#!/bin/bash
# Script for run localtunnel
# https://github.com/localtunnel/localtunnel
##### Constants
SUBDOMAIN='name'
PORT=8080