Skip to content

Instantly share code, notes, and snippets.

@pavel-sazonov
pavel-sazonov / tokens.md
Created April 13, 2019 18:29 — 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 система авторизации проверит имеет ли право юзер обращатся к этому ресурсу (проще говоря переходить по неким разрешенным ссылкам)

@pavel-sazonov
pavel-sazonov / Best UIView Extension
Created April 3, 2019 18:06 — forked from parrotbait/Best UIView Extension
Add basic missing functionality to UIKit
extension UIView {
var isVisible: Bool {
set {
self.isHidden = !newValue
}
get {
return !self.isHidden
}
}
}
------------------------------
********************
CONFIDENT RUBY
********************
------------------------------
каждый метод может состоять максимум из 4 частей
1 Collecting input
2 Performing work
3 Delivering output
@pavel-sazonov
pavel-sazonov / resourseable_concern.rb
Created November 21, 2018 19:20 — forked from fedorkk/resourseable_concern.rb
resourseable_concern.rb
module Resourceable
extend ActiveSupport::Concern
included do
helper_method :resource, :resources, :resource_class
end
def index; end
def show; end
@pavel-sazonov
pavel-sazonov / books_list.txt
Created November 21, 2018 19:20 — forked from fedorkk/books_list.txt
Список книг для обучения
Алгоритмы:
1) Стивен Скиена "Алгоритмы. Руководство по разработке"
2) Томас Кормен "Алгоритмы. Построение и анализ"
3) Дональд Кнут "Искусство программирования" (никто в реальности не читал этот многотомный труд целиком, но в любой подборке по алгоритмам он обязан быть)
Общее:
1) Род Хаггарти "Дискретная математика для программистов"
2) Керниган, Ритчи "Язык программирования С" - для общего понимания принципов программирования
3) Дж. Андресон "Дискретная математика и комбинаторика"
4) Романовский И.В. "Дискретный анализ"
@pavel-sazonov
pavel-sazonov / production.rb
Created September 3, 2018 07:44 — forked from vkurennov/production.rb
Пример конфига unicorn
# paths
app_path = "/home/deployer/qna"
working_directory "#{app_path}/current"
pid "#{app_path}/current/tmp/pids/unicorn.pid"
# listen
listen "/tmp/unicorn.qna.sock", :backlog => 64
# logging
stderr_path "log/unicorn.stderr.log"
@pavel-sazonov
pavel-sazonov / monit.rc
Created September 3, 2018 07:43 — forked from vkurennov/monit.rc
Пример конфига для запуска процессов через monit
### Nginx ###
check process nginx with pidfile /opt/nginx/logs/nginx.pid
start program = "/etc/init.d/nginx start"
stop program = "/etc/init.d/nginx stop"
if cpu > 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if memory usage > 80% for 5 cycles then restart
if failed host 127.0.0.1 port 80 protocol http
then restart
if 3 restarts within 5 cycles then timeout