Skip to content

Instantly share code, notes, and snippets.

View sk146's full-sized avatar
:octocat:
Thanks for the fish!

Sergey Karpenko sk146

:octocat:
Thanks for the fish!
View GitHub Profile
@sk146
sk146 / Readme.md
Created February 18, 2020 14:49 — forked from Dmitriy-8-Kireev/Readme.md
Docker Шпаргалка

Процессы в Linux

В Linux используется уникальная реализация потоков: между процессами и потоками нет никакой разницы Многопоточность организована в виде процессов с общими ресурсами. Иное название для процесса – задание или задача (task).

@sk146
sk146 / tokens.md
Created November 13, 2020 01:32 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

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

Last major update: 25.08.2020

  • Что такое авторизация/аутентификация
  • Где хранить токены
  • Как ставить куки ?
  • Процесс логина
  • Процесс рефреш токенов
  • Кража токенов/Механизм контроля токенов
@sk146
sk146 / imageSize.md
Created November 13, 2020 01:32 — forked from zmts/imageSize.md
Get image width and height with JavaScript

Get image width and height with JavaScript

function imageSize (image) {
  return new Promise((resolve, reject) => {
    try {
      const fileReader = new FileReader()

      fileReader.onload = () => {
 const img = new Image()
@sk146
sk146 / raw_sql_vs_query_builders.md
Created November 13, 2020 01:33 — forked from zmts/raw_sql_vs_query_builders.md
Raw SQL query vs Query builders (Knex.js/Objection.js)

Raw SQL query vs Query builders (Knex.js/Objection.js)

Raw SQL

static async listPostsPublicRaw ({ offset, limit, filter = {} } = {}) {
    assert.integer(limit, { required: true, min: 10 })
    assert.integer(offset, { required: true, min: 0 })
    assert.validate(filter.blogId, BlogModel.schema.id, { required: true })
    assert.validate(filter.stackId, StackModel.schema.id)
@sk146
sk146 / indexInForOf.md
Created November 13, 2020 01:33 — forked from zmts/indexInForOf.md
Get index in for of

Get index in for of

for (const [index, value] of ['a', 'b', 'c'].entries()) {
  console.log(index, value)
}

/*
0 "a"
1 "b"
@sk146
sk146 / docker.md
Created November 13, 2020 01:34 — forked from zmts/docker.md
Docker, TypeScript, Node.js

Docker, TypeScript, Node.js

Preconditions:

  • TS application listening port: 7777
|-- dist
|-- src
|-- .dockerignore
|-- Dockerfile
@sk146
sk146 / makeArray.md
Created November 13, 2020 01:34 — forked from zmts/makeArray.md
Create array with specific size Javascript

Create array with specific size Javascript

[  ...Array(10).keys() ] // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
@sk146
sk146 / seo_links.md
Created November 13, 2020 01:36 — forked from zmts/seo_links.md
SEO & ЧПУ
@sk146
sk146 / permissions.md
Created November 13, 2020 01:36 — forked from zmts/permissions.md
Управление правами/ролями в Node.js приложениях (Permissions/ACL)

Управление правами/ролями в Node.js приложениях (Permissions/ACL)

Допустим у наc есть такой CRUD и мы хотим проверять права доступа к каждому екшену.

class PostsController extends BaseController {
  static get router () {
    router.get('/', actionRunner(actions.ListAction))
    router.get('/:id', actionRunner(actions.GetByIdAction))
    router.post('/', actionRunner(actions.CreateAction))
    router.patch('/', actionRunner(actions.UpdateAction))