Skip to content

Instantly share code, notes, and snippets.

@pioh
pioh / QueryStore.ts
Created April 8, 2024 18:38
QueryStore.ts
import {action, computed, observable, reaction, toJS} from "mobx";
import base64url from "base64url";
import qs from "qs";
import {RealtyField} from "proto";
import {Provide} from "store/feature/DependencyManager";
import {routerStore} from "store/RouterStore";
@pioh
pioh / ball.go
Last active December 1, 2023 20:58
заряды
// Структура для представления шара в двумерном мире
type Ball struct {
// Поля для хранения координат центра и радиуса шара
X float64 // координата x центра шара
Y float64 // координата y центра шара
R float64 // радиус шара
Speed float64 // скорость шара в метрах в секунду
Density float64 // плотность, масса на единицу площади
Charge float64 // электрический заряд, может быть как положительным так и отрицательным
}
@pioh
pioh / main.go
Created June 26, 2023 18:22
task runner2
package main
import (
"github.com/gin-gonic/gin"
"log"
"time"
)
func main() {
g := gin.Default()
@pioh
pioh / main.go
Created June 26, 2023 18:06
task runner
package main
import (
"fmt"
"log"
"net/http"
"strconv"
"time"
)

Дудко Артемий, 25 лет.
telegram: https://t.me/n_e0h
thepioh@zoho.com
+79267952303

О себе

Программирую на работе, приезжаю домой и программирую дома разные проекты, постоянно читаю про разные технологии, методологи подходы и т.д. во время еды, перед сном или в дороге или когда нет сил программировать).

Считаю что за последние 5 лет стал очень хорошо разбираться в фронтенд технологиях, могу написать приложение любой сложности, которое будет быстро загружаться и работать. Предпочитаю react/mobx/typescript.

@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
@pioh
pioh / trace.md
Last active March 17, 2019 19:55
trace.md

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

  1. Найти узкие места в производительности как внутри одного сервиса, так и во всем дереве выполнения между всеми участвующими сервисами.
    К примеру:
  • Много коротких последовательных вызовов между сервисами, например, на геокодинг или к базе данных.
  • Долгие ожидания ввода вывода, например, передача данных по сети или чтение с диска.
  • Долгий парсинг данных.
  • Долгие операции, требующие cpu.
  • Участки кода, которые не нужны для получения конечного результата и могут быть удалены, либо запущены отложенно.
  1. Наглядно понять в какой последовательности что вызывается и что происходит когда выполняется операция.
@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 / 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") // Тип объекта
{
"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",