Skip to content

Instantly share code, notes, and snippets.

@pioh
pioh / table.js
Created November 29, 2017 01:28
table ex
const tableModel = {
@observable data = []
@observable sort = null
@observable dir = null
@observable page = 1
@observable totalEntities = 0
@observable entitiesOnPage = 10
@computed get sortedData () {
return this.data.sort((a, b))
@pioh
pioh / README.md
Last active December 6, 2017 11:03
MergeContext
  • Сделать updateContext и replaceOffer с мержем только по переданным объектам
    • переписывать только по переданным путям в map
    • перезаписывать полностью с нуля переданный array
    • игорировать undefined поля и не игнорировать а перезаписывать null поля
  • Добавить лок всех операций над контекстом на уровне reportID (id контекста)
  • Отдельно кастомизировать мерж массива corrections в виде corrections: [{hid: "hid123", a: {b: {c: 'value'}}]
  • Добавить поле comparableHID
  • Добавить поле filter
  • Добавить поле registryBackUrl
  • Добавить поле версии в context и в offer
@pioh
pioh / skbn.cpp
Created February 9, 2018 21:40
skbn
#pragma comment(linker, "/STACK:134217728")
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using std::cin;
using std::cout;
int m, n, sz, num, numb;
@pioh
pioh / core.scss
Last active February 22, 2018 23:32
webpack scss config
@import '~react-select/dist/react-select.css';
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
html {
font-size: 13px;
@pioh
pioh / Dockerfile
Created April 13, 2018 09:29
dante socks5 proxy
FROM wernight/dante
# TODO: Replace 'john' and 'MyPassword' by any username/password you want.
RUN printf 'proxypassword123\nproxypassword123\n' | adduser proxyuser321
{
"pair_ID": 8942,
"stock_symbol": "A",
"parent_pair_ID": 0,
"canonical_to_pair_id": 0,
"override_country_ID": 0,
"eq_pe_ratio": 26.01,
"eq_pe_ratio_eu": "26,01",
"eq_market_cap": 19790000000,
"eq_market_cap_eu": "19,79B",
@pioh
pioh / example.js
Created September 11, 2018 18:03
example
let configReader = new ConfigReader("path/to/folder/with/all/config/scheme")
let config = configReader.read()
config.calc("filter.fields") // undefined
config.addEnvironment({user: {bank: vtb}})
config.calc("filter.fields") // ["realtyType", "sources"]
config.calc("filter.field.realtyType.title") // Тип объекта
config.addEnvironment({user: {bank: "rzd"}})
config.calc("filter.field.realtyType.title") // Вид недвижимости
let config2 = config.fork().addEnvironment({user: {bank: "vtb"}})
config2.calc("filter.field.realtyType.title") // Тип объекта
@pioh
pioh / main.go
Created September 20, 2018 18:18
Profiler example
package main
import (
"fmt"
"github.com/pkg/errors"
)
func main() {
if err := StartProfiler(); err != nil {
@pioh
pioh / trace.md
Last active March 17, 2019 19:55
trace.md

Какие проблемы можно решить с помощью трассировки

  1. Найти узкие места в производительности как внутри одного сервиса, так и во всем дереве выполнения между всеми участвующими сервисами.
    К примеру:
  • Много коротких последовательных вызовов между сервисами, например, на геокодинг или к базе данных.
  • Долгие ожидания ввода вывода, например, передача данных по сети или чтение с диска.
  • Долгий парсинг данных.
  • Долгие операции, требующие cpu.
  • Участки кода, которые не нужны для получения конечного результата и могут быть удалены, либо запущены отложенно.
  1. Наглядно понять в какой последовательности что вызывается и что происходит когда выполняется операция.
@pioh
pioh / get_user.sql
Created May 25, 2019 18:12
merge lang sql
SELECT u.id,
ut.tags,
COALESCE(NULLIF(l1.first_name, ''), NULLIF(l2.first_name, ''), NULLIF(l3.first_name, '')) AS first_name,
COALESCE(NULLIF(l1.last_name, ''), NULLIF(l2.last_name, ''), NULLIF(l3.last_name, '')) AS last_name,
COALESCE(NULLIF(l1.middle_name, ''), NULLIF(l2.middle_name, ''), NULLIF(l3.middle_name, '')) AS middle_name
FROM user u
LEFT JOIN (SELECT user_id, array_agg(tag) AS tags
FROM user_tag
WHERE user_id = 6
GROUP BY user_id) ut