Daniel
смотрите, в чем проблема
Daniel
map может при любой записи перебалансироваться
Daniel
поэтому одновременно читать и писать, даже если вы обновляете уже имеющийся в map элемент, нельзя
Daniel
но после окончания записи map снова приходит в стабильное состояние, и параллельное чтение ничего сломать не может
Ivan
map может при любой записи перебалансироваться
нет, там кейс, что при старте программы создал template, попарсил его и потом из кучи горутин, которые обрабатывают реквесты читаешь из внутренней мапы. Без синхронизации разве это корректно?
Daniel
вполне
Daniel
собственно, есть RWMutex
Ivan
а где про это в https://golang.org/ref/mem пишется?
Daniel
я не помню уже
Ivan
а где там внури RWMutex-ом чтение из мапы закрыто?
Daniel
но это точно так
Daniel
я про другое
Ivan
ну я спрашиваю, потому что я сейчас смотрю туда и понять не могу, как там happens-before гарантируется :)
Daniel
Lock от RWMutex можно взять только один
Daniel
а RLock - сколько хочешь
Daniel
и сделать этот RWMutex спецом для мапы
Daniel
Ivan
что?)
Daniel
что - что?
Ivan
где там mutex, который tmpl мапу оборачивает?
Daniel
он нужен, только если в мапу писать
Daniel
если воздержаться - параллельное чтение не требует блокировок
Ivan
https://golang.org/ref/mem раздел Incorrect synchronization
Ivan
Worse, there is no guarantee that the write to done will ever be observed by main, since there are no synchronization events between the two threads. The loop in main is not guaranteed to finish.
Ivan
если без синхронизации читать то, что записала другая горутина, то можно фиг знает что прочитать.
Daniel
безусловно. но мы-то говорим, что мы сначала ее запулнили, а потом читаем. если мы не дебилы, мы читающие горутины запустили после заполнения
Ivan
ну а что нам обеспечивает happens before?
Daniel
однопоточность?
Ivan
В го есть 3 подхода, чтобы это гарантировать: mutex, channel, atomic.
Daniel
да, точно, однопоточность!
Daniel
еще раз
Ivan
я говорю, что мы это делаем в разных горутинах))
Ivan
давай еще раз, да))
Daniel
если мы делаем это в разных горутинах - мы должны использовать mutex
Daniel
но делать это в разных горутинах не обязательно
Daniel
зачем?
Daniel
ну - да
Daniel
это же очевидно :)
Мерль
Vladimir
можно взять новую syncmap'у из Го 1.9, она потокобезопасна
Vladimir
но внутри там все те же atomic + mutex'ы
Anatoly
Посоны, а где golangshow? Вроде онлайн тут бросали, а в фиде тишина.
Slava
запись позже онлайна появляется
Anatoly
Continuous delivery не настроен?)
engelbart
У меня есть некоторые timeseries данные, если можно так сказаоть.
Фактические бакет boltb , ключ дата, в данных пару метрик, не числовых а флагов.. "было то, было сё".
Мне нужно построить график и показать его через веб.
Типа сгрупировать по 15 минут интервалами и показать там линии по цифрам , за этот интервал 20 событий А, 10 событий Б.
Как сгрупироватья понимаю (наивным способом for по ключу и аккумулятор)
как рисовать, да ещё и красиво не очень (не png же генерить)
Подскажите чтонибудь в тему.
Задача в принципе разовая, чем проще тем лучше. Ексель я предлагал, хотят веб.
Anonymous
У меня есть некоторые timeseries данные, если можно так сказаоть.
Фактические бакет boltb , ключ дата, в данных пару метрик, не числовых а флагов.. "было то, было сё".
Мне нужно построить график и показать его через веб.
Типа сгрупировать по 15 минут интервалами и показать там линии по цифрам , за этот интервал 20 событий А, 10 событий Б.
Как сгрупироватья понимаю (наивным способом for по ключу и аккумулятор)
как рисовать, да ещё и красиво не очень (не png же генерить)
Подскажите чтонибудь в тему.
Задача в принципе разовая, чем проще тем лучше. Ексель я предлагал, хотят веб.
Предлагаю посмотреть в сторону этой прекрасной штуки
http://www.gnuplot.info/
engelbart
Я ожидал скорее js какой нибудь увидеть куда я json данные суну
Anonymous
Anatoly
У меня есть некоторые timeseries данные, если можно так сказаоть.
Фактические бакет boltb , ключ дата, в данных пару метрик, не числовых а флагов.. "было то, было сё".
Мне нужно построить график и показать его через веб.
Типа сгрупировать по 15 минут интервалами и показать там линии по цифрам , за этот интервал 20 событий А, 10 событий Б.
Как сгрупироватья понимаю (наивным способом for по ключу и аккумулятор)
как рисовать, да ещё и красиво не очень (не png же генерить)
Подскажите чтонибудь в тему.
Задача в принципе разовая, чем проще тем лучше. Ексель я предлагал, хотят веб.
Я вот такое делаю с помощью http://chartjs.org/
engelbart
вовово, что то тавкое
Chuvi
вовово, что то тавкое
Простите что в чатике по ГО с таким решением, но мне кажется оно самым подходящим, если графики не динамические - http://www.pchart.net/
Anatoly
А какой смысл делать это на сервере, если эта задача отлично ложится на клиента? Отдал в страничку массив, js сам построил график.
Делать это на похапе совсем уж дичь.
engelbart
chartjs судя по всему отлично мне подходит
Anonymous
Ктонибудь писал систему обмена сообщениями между пользователями или новостные ленты?
Valentin
Anonymous
Народ, может кто-то писал бота для телеги на Go? Вопрос такой, есть ли возможность получения имен пользователей с каналов по ID каналов?
Chuvi
Anonymous
a1eXei
насчёт go не подскажу, у меня есть в списках боты, они как раз имена и логины, и всю остальную инфу выдают, и пинят
a1eXei
естественно админы боты, по другому вроде никак
a1eXei
пины вроде через telegram-cli сделали
Anonymous
Anonymous
ну и что?
Anonymous
ну я на php пишу как и на go =)))
Anonymous
многие любители пыха на шарпе сидят )
Michael
ровно столько же, сколько на скале
a1eXei
Оо, маленький вопрос, как можно реализовать небольшой тест.
точнее просто 1 веб-страница, где будет по типу таблицы экселя, в которой верхние и левые ячейки не изменяемы, а только пустые ячейки куда нужно поставить +
и в таком виде где то заполнены, где то нет, отправить на почту?
a1eXei
сейчас пример таблицы покажу
engelbart
Anatoly
😉
a1eXei
a1eXei
где плюсы, там будут текстовые поля ввода
я просто не знаю, как потом в таком же виде отправить на почту
Oleg
a1eXei
спасибо, попробую
Anatoly
Это вопрос к фронтендерам, тут на го вообще по-моему нечего делать
Oleg