Pawel
наколько такой код thread safe var sessions []*jsonrpc2ws.Client mu := new(sync.Mutex) go func () { mu.Lock() var copySessions []*jsonrpc2ws.Client copySessions = append(nil, sessions...) mu.Unlock() // deal with copySessions for _,session := range copySessions{ } }() в смысле append же создаст копию слайса в copySessions, или ссылку на sessions?
Vasily
ну сам слайс - да, но работа потом с клиентами - нет, потому что там указатели
Pawel
это я чет засомневался про append
Vasily
ну можно явно copy сделать
Vasily
copySessions :=( []*jsonrpc2ws.Client, len(sessions)) copy(copySessions , sessions)
Vasily
но с аппендом будет норм тоже
Pawel
сделайте плиз кто нибудь не большЕнький code review https://play.golang.org/p/S0JDrxMmciH Берут сомнения насколько это хорошая идея - проверять что event-loop активен через атомик-флаг
Altay unstppbl
Как сгенерить большое простое число? Больше чем влезает в int64
Altay unstppbl
Мне надо реализовать алгоритм diffie-hellmana
Altay unstppbl
В ноде например есть библиотека которая генерит и в строковом представлении тебе отдаёт, его я уже могу передать другому узлу
Dmitry
https://golang.org/pkg/math/big/
Altay unstppbl
число простым должно быть
Nurzhan
число простым должно быть
Тут коммент первый: https://crypto.stackexchange.com/questions/1970/how-are-primes-generated-for-rsa
Nurzhan
число простым должно быть
Ну или https://golang.org/pkg/crypto/rand/#Prime
Altay unstppbl
@nsaktaganov спасибо, всё встало на свои места
Nurzhan
@nsaktaganov спасибо, всё встало на свои места
Только во второй ссылке говорится только о высокой вероятности, что число будет простым. А в первой ссылке не указано как именно лучше проверять на простоту.
Altay unstppbl
Да, я понял, функция Prime это что было нужно rand.Prime(rand.Reader, 512)
Roman
сделайте плиз кто нибудь не большЕнький code review https://play.golang.org/p/S0JDrxMmciH Берут сомнения насколько это хорошая идея - проверять что event-loop активен через атомик-флаг
не по феншую. правильно рассчитывать что канал всегда не закрыт. он закрывается только когда никто никогда данные в него не положит
Pawel
не по феншую. правильно рассчитывать что канал всегда не закрыт. он закрывается только когда никто никогда данные в него не положит
канал то не закрыт. Фишка в том, что там есть event loop, в котором происходит io в вебсокет. и в случае ошибки (разрыв коннекта) event loop завершается вместе с хттп сессией. После чего из этого канала никто уже ничего не считает и запись в него блокируется, что ведёт к глюкам программы
Fastumkruk
strconv.FormatInt(12345, 10) , цифра 10 что означает?
Aleksandr
Комментарий к методу читай
Aleksandr
К функции
Fastumkruk
Комментарий к методу читай
10 это base. Не совсем понятно для меня.
Aleksandr
Десятичная система
Cat
10 это base. Не совсем понятно для меня.
основание системы счисления
Michael
It seems like the big bang theory
Michael
Системы исчисления, хех ещё битовые операции
Yuri
ghbdtn
Dmitry
Есьб ли в GO алгебраические типы данных ?
Anonymous
сделайте плиз кто нибудь не большЕнький code review https://play.golang.org/p/S0JDrxMmciH Берут сомнения насколько это хорошая идея - проверять что event-loop активен через атомик-флаг
Ничего страшного в этом нет. Однако, зачем ставить флаг, чтобы потом его проверять, если можно просто закрыть канал.
Cat
так так так
Cat
каким образом?
Igor
https://play.golang.org/p/yzEsYZU6l6H
Igor
как-то так?
Cat
этот вопрос мучает меня уже пару лет, вы меня просто спасёте, если расскажите
Cat
как-то так?
не очень понимаю, как можно это использоваться в качестве возвращаемого значения
Cat
Точнее, не понимаю, как это ограничивает набор возможных возвращаемых типов
Cat
Хотя, это интересно, спасибо
Igor
Точнее, не понимаю, как это ограничивает набор возможных возвращаемых типов
логически? :) можно интерфейс сделать приватным, тогда они будут на уровне пакета ограничены, по идее мне самому АДТ не хватало, это самое близкое к ним, что я смог придумать
Cat
> они будут на уровне пакета ограничены, это ведь самое грустное
Cat
если вынести, то имплементация интерфейса автоматически делает это значение "подходящим"
Pawel
Ничего страшного в этом нет. Однако, зачем ставить флаг, чтобы потом его проверять, если можно просто закрыть канал.
а там логика такая, что сперва надо отправить сообщение в event loop - записать в канал. И только потом получить результат из event loop-а - считать из канала. Так вот чтобы отправитт сообщение, надо чтобы event loop работал, иначе отправка повиснет.
Fastumkruk
https://t.me/NameBot?start=123456 , Кто знает как обработать реф. ссылку в телеграм боте?
Aleksandr
https://t.me/NameBot?start=123456 , Кто знает как обработать реф. ссылку в телеграм боте?
реф ссылку в телеграме или ту которую ты написал?
Fastumkruk
реф ссылку в телеграме или ту которую ты написал?
У некоторых ботов есть реф.ссылка по типу https://t.me/NameBot?start=123456 , как ее обработать. Как понять что человек пришел по реф.ссылке от пользователя с ид 123456
Aleksandr
это же просто ссылка, по которой ты попадаешь в чат с ботом
Aleksandr
оно не генерирует никакое событие
Fastumkruk
оно не генерирует никакое событие
Тогда у ботов у которых есть реф.ссылка, это обман получаеться!?
Yuri
народ, как можно красиво мапу на части динамически бить?
Aleksandr
Тогда у ботов у которых есть реф.ссылка, это обман получаеться!?
я твоей терминологии не понимать. у ботов нет реф ссылок
Aleksandr
Ну, ладно.
а не, вру
Aleksandr
если нажимаешь start, то приходит /start 123456
Dmitry
как правильно работать с анонимными структурами ? как починить вот это https://play.golang.org/p/P5YGG2EMKUw
Dmitry
киньте в меня ссылкой на эту тему
Dmitry
https://play.golang.org/p/WKsPn3Gnttu
тоесть другого пути как превратить анонимные структуры в именованые , нет ?
Dmitry
неа
ок. спасибо
kås
Третьего дня удалось по случаю попасть на Ultimate Go воркшоп от товарища Била Кеннеди (соавтора go in action). Стелит дядя крайне гладко и плотно. Кто не знаком с его выступлениями – очень советую. https://www.youtube.com/watch?v=SjNuCurZ-CY
Dmitry
я в шоке. 1000 звездочек на гитхабе и такая невнятная документация с почти нулем примеров. опенсорс во всей красе
Je
для го это отличительная особенность, вместо документации сразу читаешь сорцы
Konstantin
Херасе))
Konstantin
Отличный язык походу ))
Konstantin
Суровый шопесдец
Dmitry
это не языка беда, это опенсорса беда
Je
это не языка беда, это опенсорса беда
не совсем так, чтобы минимально выгрузить пакет на питоне в pypi тебе нужно этот пакет собрать, пока ты его собираешь, рука автоматически тянется написать документацию, в го же git push, в лучшем случае еще успеваешь зафиксировать версию, в худшем обновляешь репу и пользователи терпят изменения
Dmitry
другое дело что человеку звездочки понаставили, а он не чувствует ответственности за него и вся документация это апи и 2-3 простых примера
Dmitry
мне кажется нехватает на гитхабе комментариев , быстрых меток к звездочкам , типа "Сделай нормальные примеры, сука"
Dmitry
блять, я заебался. пойду напишу нормальный пакет для парсинга коммандной строки. с блекджеком и шлюхами и с нормальной документацией