Daniel
а что такое "что делает"? какую функцию исполняет?
Alexandr
@onokonem есть gin, есть паника, но возникает только при нескшльких зщапросах одновременно. race detector не пишет что есть гонка
Alexandr
дебагером отловить не получается, т.к там данные одной горутины видно только
Daniel
а что в панике?
Daniel
там обычно достаточно
Alexandr
reflect: indirection through nil pointer to embedded struct
Kirill
там обычно достаточно
там обычно в пару раз больше, чем нужно
Daniel
в пару?
Alexandr
так то да. обычно видно сразу в чем дело, но тут не могу поймать
Kirill
в пару?
как минимум в пару. и это если ты stackless горутины пилишь
Alexandr
есть подозрение, что всеже данные не thread safe
Alexandr
но race detector придательски молчит))
Daniel
но именно панику дают на этом месте мапы
Alexandr
есть мапа с template, но в нее никто не пишет, она заполняется при инициализации и все
Kirill
так то да. обычно видно сразу в чем дело, но тут не могу поймать
мне видится, что ты попадаешь в момент, когда один запрос чистит данные, собирается их реинициализировать, а второй их уже юзает
Alexandr
вот и хотелось бы увидеть обращение горутин к данным
Alexandr
вроде я что то припоминаю, что есть инструмент для постойки визуального представления обращения горутин к данным
Alexandr
но что именно не могу вспомнить и нагуглить
Kirill
вот и хотелось бы увидеть обращение горутин к данным
будь у нас такой рейс детектор, мы бы все уже сидели на thread-safe concurrent языке
𝒦𝒶𝓁𝒶𝓎⛩
Добрый день! Не подскажете как обратиться в теплейтах к элементу массива {{array["key"]}}
Лосось
Поцаны, создал сервер с помощью gin он работает, подскажите, как отправить файл в качестве ответа (музыка)
Лосось
c.Stream? есть аналог нодовского res.send()?
Michail
Кто то на gin добавлял letsencrypt ? У меня не стартует
Kirill
Кто то на gin добавлял letsencrypt ? У меня не стартует
А взял бы gramework - заработало бы из коробки)
Мерль
https://godoc.org/github.com/gin-gonic/gin#Context.Stream
Michail
А взял бы gramework - заработало бы из коробки)
У меня как бы уже все написано на gin )
Olzhas
У меня как бы уже все написано на gin )
взял бы gramework - не пришлось бы писать на gin
Michail
Michael
@mkuznetcov там всем пофиг... взяли бы gramework не пришлось бы краснеть перед гоферами с высокой социальной ответственностью
Michail
Я не знал что gin считается гавном в этом чатике же
Michail
Michael
Я не знал что gin считается гавном в этом чатике же
это не в чатике, а у вас в голове, а у нас и с gramework жизнь норм
Olzhas
а я gin юзаю
Olzhas
и мне норм
Olzhas
Olzhas
какая разница какое дерьмо юзать
Dmitry
главное что бы торкало
kås
Αλεχ
HierarchicalId в помощь
Αλεχ
а где их хранить? в космосе?
их можно храниь нерекурсивно, прикинь
doc
в памяти
Pawel
в памяти
энергозависимой?
Aleksandr
денормализовать на а4
Pawel
их можно храниь нерекурсивно, прикинь
с потерей гарантий по констистентности?
Αλεχ
если конечно у тебя нормальное дерево, а не произвольный граф
Αλεχ
а делать поиск на графах на SQL это не очень умно
Kirill
все является говном
Грэйм не такое уж и говно
Pawel
без
сомнительно
Olzhas
Грэйм не такое уж и говно
Стокгольмский синдром
Kirill
Грэйм не такое уж и говно
Постепенно превращаю его в шоколад
Kirill
Вообще - там уже появился b58, генератор ключиков, TOTP и сегодня будет зарелижен пакет mail, где помимо очевидного ещё есть и поддержка телеграма
Αλεχ
сомнительно
аргумент
Pawel
аргумент
есть три костыльных способа натянуть дерево на прямоугольник с помощью SQL. Ни один их них не универсальный, у каждого свои недостатки
Alexander
https://ru.wikipedia.org/wiki/Base58https://ru.wikipedia.org/wiki/Base58
Alexander
вечно я второй :-\
Michael
типа base58 для людей)
Michael
🤣в gramework всё для людей)))
Kirill
да-да)
Daniel
TWIMC: вчерашняя проблема с listen оказалась очень странной: нельзя слишком часто открывать-закрывать unix сокеты. от этого что-то где-то ломается, и listen сокет закрывается надо бы багрепорт написать, но непонятно, куда
TWIMC 2 история про закрывающийся listen сокет оказалась и сложнее, и проще unix-сокеты были там у меня для отправки по ним tcp-соединений воркерам. соответственно - делал я их не через net.Dial, а через unix.Socket, и отправлял через unix.Sendmsg как паснуть именно хендлер соединения без unix.Sendmsg - я не знаю. так вот - потом я делал unix-сокету syscall.Close, естественно мистическим образом иногда (!) хендлер unix-сокета оказывался равен хендлеру listen-сокета. и listener закрывался, понятное дело. что с этим делать? у net.UnixConn появился сравнительно недавно метод SyscallConn, возвращающий syscall.RawConn, у которого, в свою очередь, есть Write(), позволяющий получить доступ к file descriptor. и этот fd можно использовать для вызова unix.Sendmsg, да...
Kirill
то есть — вобще другой подход применить
Daniel
Которую проблему и какой другой подход?
Kirill
Очевидно же. Проблему передачи tcp соединений
Daniel
Чет я не помню другого способа паснуть открытый хендлер
Kirill
Ну - ты его пасишь в каком виде?