Skip to content

Instantly share code, notes, and snippets.

View kitcat-dev's full-sized avatar

Albert kitcat-dev

View GitHub Profile
@kitcat-dev
kitcat-dev / apply.js
Last active August 28, 2019 06:28
by recursion
// Реализуйте и экспортируйте по умолчанию функцию apply, которая принимает на вход три параметра:
// Количество раз, которое нужно применить функцию к аргументу (ряд последовательных вызовов, где каждому следующему вызову передается аргумент, являющийся результатом предыдущего вызова функции; см. примеры ниже)
// Функцию для применения
// Аргумент для применения
// Рекурсивно:
function apply(n, foo, arg) {
if (n === 0) return arg;
@kitcat-dev
kitcat-dev / generatePassword.js
Last active August 27, 2019 14:28
Browser version
const PASSWORD_CHARSET = {
lowercase: 'abcdefghijklmnopqrstuvwxyz',
uppercase: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
numbers: '0123456789',
extraChars: '_-[].!#',
};
function getRandomInt(min, max) {
let byteArray = new Uint8Array(1);
const crypto = window.crypto || window.msCrypto;
@kitcat-dev
kitcat-dev / zalipalovo.js
Created July 5, 2019 04:49
Залипалово
setInterval(s => {
with (Math)
for (z++, y = -22; y < 23; y += 2)
for (s += '\n', x = -40; x++ < 40; )
s += 1 & (cos(atan2(x, y) * 9 - hypot(x, y) / 5 + z) > 0);
console.log(s);
}, (z = 40));
@kitcat-dev
kitcat-dev / mouseOver-debug.md
Last active October 14, 2019 13:37
How to debug mouseOver
  1. Select the element that fires on mouse enter
  2. Run your code in console:
var evt = document.createEvent("MouseEvents"); 
  evt.initMouseEvent("mouseover", true, true, window,0, 0, 0, 0, 0, false, 
false, false, false, 0, null); 
 $0.dispatchEvent(evt); 
@kitcat-dev
kitcat-dev / tokens.md
Created May 12, 2019 22:36 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Основы:

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

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

Например после аутентификации юзер sasha получает право обращатся и получать от ресурса "super.com/vip" некие данные. Во время обращения юзера sasha к ресурсу vip система авторизации проверит имеет ли право юзер обращатся к этому ресурсу (проще говоря переходить по неким разрешенным ссылкам)

npm outdated
npm update
# npm install -g npm-check-updates
ncu -u
/**
* Получает значения всех вложенных объектов из объекта со вложенными массивами и объектами
* @param {Object} obj - Корневой объект
* @returns {Array} Возвращает массив путей ко всем примитивам, вложенным в объект, вместе с путем до них
* @example
* // 'baz', 'foo', ''
* rootObject: {
* 30: { value: "baz" }
* 31: [ [ { value: "foo" } ], [ { value: "" } ] ]
* }
@kitcat-dev
kitcat-dev / Плюрализация.js
Last active June 24, 2019 13:52
Склонения числительных
function declOfNum(number, titles) {
const cases = [2, 0, 1, 1, 1, 2];
let i;
if (number % 100 > 4 && number % 100 < 20) i = 2;
else if (number % 10 < 5) i = cases[number % 10];
else i = 2;
return titles[i];
}