Skip to content

Instantly share code, notes, and snippets.

Avatar

Prisacari Dmitrii icamys

View GitHub Profile
@icamys
icamys / go_code_checklist.md
Last active Nov 12, 2019
Checklist for microservices written in golang
View go_code_checklist.md
  • Only main func decides what flags user has access to
  • There are no init() functions
  • There are no package global variables
@icamys
icamys / tokens.md
Created Nov 7, 2019 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication
View tokens.md

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

Last major update: 21.10.2019

Основы:

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

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

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

@icamys
icamys / python_tracemalloc_pretty_print.py
Last active Oct 2, 2019
Print tracemalloc in python
View python_tracemalloc_pretty_print.py
import linecache
import os
import tracemalloc
def create_pretty_stats(stats, key_type='lineno', limit=10):
stats_list = sorted([stat for stat in stats], key=lambda k: k.size, reverse=True)
stats_lines = []
for index, stat in enumerate(stats_list[:limit], 1):
@icamys
icamys / go_profiling.md
Last active Oct 3, 2019
Golang performance profiling tips with pprof
View go_profiling.md

Here are some tips on profiling golang code with pprof.

Starting profiling server

Run a profiling server in your code on port 20020:

import (
    "net/http"
    _ "net/http/pprof"
View install_docker_compose.sh
#!/bin/bash
# Install docker
sudo apt-get remove docker docker-engine docker.io
sudo apt-get update
sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
View install_docker_compose.sh
#!/bin/bash
# Install docker
sudo apt-get remove docker docker-engine docker.io
sudo apt-get update
sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
@icamys
icamys / elastic_import_data_bulk.py
Last active Jul 2, 2019
Bulk insert data from file to elasticsearch (python)
View elastic_import_data_bulk.py
"""
Usage: python elastic_import_data_bulk.py data.ndjson
"""
import sys
import json
import logging
from elasticsearch import Elasticsearch
from elasticsearch.helpers import streaming_bulk
@icamys
icamys / elastic_import_data.py
Last active May 22, 2019
Import data from file to elasticsearch (python)
View elastic_import_data.py
import json
from elasticsearch import Elasticsearch
filename = './import-files/data.json'
es = Elasticsearch("http://localhost:9200", http_auth=('elastic', 'changeme'))
i = 1
f = open(filename)
@icamys
icamys / rename_db.sh
Last active Jul 25, 2018
Rename mysql database alternative
View rename_db.sh
#!/bin/bash
mysqldump old_database_name > dump.sql
mysqladmin create new_database_name
mysql new_database_name < dump.sql
mysqladmin drop old_database_name
You can’t perform that action at this time.