ASP
🅞leksiy
filename.kubeconfig
https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/
Anonymous
ахаха а это было неплохо
Олег
Всем привет, кто и какие решения использует для in-memory cache? Не хотелось бы пока подключать что-то внешнее.
Влад
Чем Redis не нравится и для хранения чего смотря?
Влад
Могу сказать чем нравится - реплики вашего сервиса смогут иметь общий cache
Влад
Влад
значительная часть задач покрывается им + автоматическим API для бд
Влад
останется только сделать auth middleware, спроектировать БД и готово
Влад
для чего-то из бизнес-логики дописать RPCшек
Влад
Сейчас загорелся сделать фасад для сервис-меша компании на Graphql с единой точкой входа для API и единым графом данных для фронтенд-разработчиков
Влад
на CI/CD - интроспекция API и генерация интерактивной документации для фронтендеров
Влад
https://apis.guru/graphql-voyager/
Влад
Влад
Ну и попробую gqlgen по готовой схеме заодно
Влад
https://gqlgen.com/getting-started/
Влад
Влад
Не БД, а API
Влад
Просто единый граф данных, прячущий всю complexity внутреннего меша сервисов с кучей REST/graphql и тд
Влад
Конкретно это - https://github.com/Novvum/graphql-birdseye
Влад
Но вообще graphql voyager лучше
Влад
+ это обычный реакт компонент, так что кастомизация для нужд компании без проблем делается
Влад
затем приводится новый фронтенд-разраб - и у него на руках интерактивная документация API платформы
Влад
Влад
Вроде того. Чтобы был удобный инструмент для контракта между разработчиками, свести к минимуму возню относительно обсуждения API
Влад
в идеальном мире - еще и перевести всех бекендеров с написания ебучего CRUDa, еще и хренового, на разработку бизнес-логики
Влад
Завтра эти чуваки презентуют REST-коннектор для продукта:
Влад
https://hasura.io/
Влад
по идее безболезненно без рефакторинга текущих сервсисов сможем добавить вот это:
Влад
ベクゾッド
Bagasl
Dmitriy
Как можно понять в хендлере net/http, что реквест прерван?
Пробовал делать так
func (h *Handlers) test(w http.ResponseWriter, req *http.Request) {
go func(done <-chan struct{}) {
<-done
fmt.Println("Request canceled")
}(req.Context().Done())
w.Header().Set("Content-Type", "application/json")
w.Header().Set("Access-Control-Allow-Origin", "*")
w.WriteHeader(http.StatusCreated)
json.NewEncoder(w).Encode("{}")
}
В requst canceled я попадаю при отмене, но также и при завершении реквеста успешно
atkisai
добрый день, еще раз по sqlx, может кто знает там есть такая штука типо если надо выбрать не одно а много значений то там нужно в структуре указывать sql.Null если значение null, а без этого можно как-то?
Artyom
Ребят, подскажите, пожалуйста, можно ли вывести все эти api(методы/функции) которые "несет" в себе clientset? что-то типа print(dir(a)) в питоне
Artyom
знаю что можно пойти в библиотеку с модулем и там искать, но хотелось бы (если это возможно) вывести "дерево"
Artyom
Artyom
точно! спасибо
Влад
Влад
Но та же Hasura всю схему сама строит по бд вообще
Влад
Влад
Вернее не строит графики
Влад
А строит API
Влад
Там 5 минут, подними из докера, соедини с Postgres
Влад
Все
Влад
Схему я уже по API получал
Artyom
я думал можно такую получить, например из кубера. всмысле его API представить в таком виде. оч круто было бы
atkisai
ыы хоть ктото ответил) не не работает никак) ладно это уже мелочи, главное с основным разобрался)
Alexey
да свое то я уже накидал через sync.Map. Но возможно есть серебряная пуля которую все используют
Пули нет, но есть множество адекватных встраиваемых решений под разные задачи. https://github.com/gostor/awesome-go-storage. Посмотри среди emdedded key-value, а также go-cache, freecache, ristretto cache, bigcache, golang-lru (реализуют вытесняемый кэш с TTL и колбеком на вытеснение). Кстати, также есть почти полные аналоги redis (с похожей семантикой функций для работы с разными типами данных).
OneLeg
hi anyone can help me to convert some png images to a video using golang i had searched but i didn't found anything
Maks
https://pkg.go.dev/image/gif
Maks
?
Олег
Alexey
Эти либы вполне законченные решения. Поэтому не вижу резона смотреть на дату последнего коммита.
Олег
Alexey
ну несмотря на это люди пишут обертки для них, типа этой: https://github.com/eko/gocache которая использует их все в качестве возможного бэкенда.
Олег
Alexey
In-memory кэш (на lru\lfu алгоритме) это очень простая штука, поэтому разработчикам думаю просто неинтересно пилить что-то дальше. Кому чего-то не хватает - просто форкают и допиливают свое. Я из перечисленных почти все юзал - для моих задач работают как надо. Если будет нужно что-то особенное (страшный highload), тогда уж имеет смысл смотреть традиционные промышленные key-value...
Ivan
используете ли вы в своих проектах sync.Cond. Меня вот это милейшая конструкция только сейчас заинтересовала)
🅞leksiy
Maks
Чел хотел заскамить нас что ли
DI
Добрый день. Не могу понять, что происходит
type Configs struct {
Airstrips []Airstrip `json:"airstrips"`
}
type Airstrip struct {
ServerConfigs ServerInfo `json:"server"`
ClientsConfigs []ClientsInfo `json:"clients"`
LifeSupportConfigs LifeSupportSystemInfo `json:"LFS"`
CamerasConfigs []CamerasInfo `json:"cameras"`
}
type ClientsInfo struct {
ID uint16 `json:"id"`
Address string `json:"address"`
Priority uint8 `json:"priority"`
NumberCamera uint8 `json:"number_camera"`
AllowCameras []uint8 `json:"allow_cameras"`
}
При сериализации через json.Marshall AllowCameras записывается как строка и не могу понять из-за чего. Это поведение для слайса байтов или что?
Ivan
слайс байтов это []byte
Ivan
а uint8 это char
Ivan
так что возможно такое поведение случается
🅞leksiy
Ivan
да
Che
Ivan
другое дела как вы узнали что там строка?
Ivan
может это fmt уже себя так ведет
Ivan
a := []uint8{1, 2, 3}
fmt.Println(fmt.Sprintf("%s", a))//☺️☻♥️
DI
DI
DI
Ладно. Это фигня
hasher := md5.New()
ha1 := hasher.Sum([]byte("admin:Login to DG0110PAZ00257:sdasdjdfhjsdfdsdad"))
fmt.Printf("ha1 %x\n", ha1)
Output: ha1 61646d696e3a4c6f67696e20746f2044473031313050415a30303235373a73646173646a6466686a7364666473646164d41d8cd98f00b204e9800998ecf8427e
Это с чем связано?