
Vladimir
25.07.2016
14:57:40
GenStage использовал уже кто-нибудь?

Rumata
25.07.2016
14:58:26
на последнем митапе чувак из Woga сказал что это опасная тема и они подъебались с ним. Чесстно сказать уже не помню всех деталей
может удастся нарыть пост, или его сюда зазвать

Vladimir
25.07.2016
15:05:17

Google

Vadim
25.07.2016
15:05:40
О, спасибо

Dmitry
25.07.2016
15:06:19
В чем смысл gen stage? Зачем приёмнику вообще знать о том, когда ему пришлют данные и сколько из должно быть?

Vladimir
25.07.2016
15:12:55
https://www.youtube.com/watch?v=aZuY5-2lwW4
Звук так себе, правда.
Ну в смысле шумно.
А кто-нибудь писал уже враппер API какого-нибудь сервиса?

Dmitry
25.07.2016
15:23:35
Я смотрел телеграмм апи - очень простой
На гитхабе посмотри

Vladimir
25.07.2016
15:23:48
Ты про nadia?
Да, видел.
Но не увидел, что туда можно было бы передавать параметры, которые будут использоваться враппером при каждом запросе.
Ну типа прокси-сервера или же таймаутов.
ENV переменные не решение.

Google

Dmitry
25.07.2016
15:27:38
Там просто чисто функционально сделано + немного конфигов
Если обернуть в genserver то в init можно все эти параметры запихать
И можно дополнительные функции типа set_timeout/1 ли что там тебе надо запихать

Vladimir
25.07.2016
15:28:55
Особенно если используешь несколько врапперов и запросы каждого тебе нужно проксировать.

Dmitry
25.07.2016
15:29:11
Ну так там сделано)
Можешь перепилить все по крутому)

Vladimir
25.07.2016
15:29:54
Так вообще везде.
То есть в том же Go является хорошей практикой оставлять возможность передать указатель на свою структуру HTTP клиента, которая будет использоваться враппером.
Здесь же всё не так просто!

Константин
25.07.2016
15:31:44
Парни, столько матов было, читать неприятно.

Dmitry
25.07.2016
15:32:13
Посмотри к примеру https://github.com/jwarwick/ex_modbus. Клиент сделан через сервер. Правда там тоже __MODULE__ используется, но это дело наживное

Константин
25.07.2016
15:32:36
Если сильно хочется по материться - идите в личку.
Ну правда, 200 сообщений читал))

Vladimir
25.07.2016
15:33:53
В принципе, может всё и не так плохо.
Но сам по себе регистр имён процессов выглядит как ГЛОБАЛЬНОЕ СОСТОЯНИЕ.

Dmitry
25.07.2016
15:38:03
Вас это не смущает???
Вот тут может быть вам поможет, если я вас правильно понял
https://github.com/uwiger/gproc

Vladimir
25.07.2016
15:38:36
http://erlang.org/doc/man/erlang.html#register-2

Dmitry
25.07.2016
15:38:47
http://www.brianstorti.com/process-registry-in-elixir/
Вот статья, перевожу её сейчас на Хабр

Google

Vladimir
25.07.2016
15:40:15
Видел нечто похожее около месяца назад, если не больше, то там ничего про gproc не было, вроде бы.

Dmitry
25.07.2016
15:40:49
Смысл один и тот же. Аналог gproc можно самому сделать
Он просто ещё и всякие пулы добавляет)

Vladimir
25.07.2016
15:44:03

Константин
25.07.2016
16:01:01
@Virviil Если будут новые переводы - пиши сюда)) будем рады почитать!

Dmitry ?
25.07.2016
16:28:28

[Anonymous]
25.07.2016
16:28:51
Всем привет
Что собой предстовляет этот язык

Dmitry ?
25.07.2016
16:29:44
Синтаксический сахар над Erlang

Dmitry
25.07.2016
16:29:52
Потому что из регистра по имени можно получит пид, а пл нему все остановить
А если сам регистр - то он вообще уникальный в системе

Dmitry ?
25.07.2016
16:30:52
Ну процесс GenServer так просто там не остановить. Нужно останавливать потомка супервизора, а это в simple_one_to_one strategy можно сделать только по pid
Просто был неочевидный момент для меня
Из GenServer делаю YourSupervisor.stop_room(self())
В YourSupervisor
def stop_room(pid) do
Supervisor.terminate_child(:room_supervisor, pid)
end

Dmitry
25.07.2016
16:34:44
Мне почему-то кажется, что не надо использовать супервизор для остановки чего бы то ни было
Если вы в каком то месте кода знаете, что вам что-то конкретное нужно остановить - то вы автоматически знаете ЧТО это
И его pid и его тип

Dmitry ?
25.07.2016
16:36:28
Я хочу остановить процесс который я создал по своему id и хотел бы закрыть его тоже по id

Dmitry
25.07.2016
16:36:40
А значит отправить в genserver {:DOWN ... } - вроде так, честно не помню

Google

Dmitry ?
25.07.2016
16:36:51
:stop делал
Супервизор перезапускает его

Dmitry
25.07.2016
16:37:10
Значит нужна другая стратегия

Dmitry ?
25.07.2016
16:37:49
Пробовал, уже не помню че там, но не работает то, что в статье
Если менять с simple_one_to_one на что-то

Dmitry
25.07.2016
16:38:13
У супервизора есть delete_child/1
Удаляем потом останавливаем

Dmitry ?
25.07.2016
16:38:47
Да есть
Попробую, спасибо

Michael
25.07.2016
18:37:30
Всем привет. У вас встречи случайно не проводятся в Питере?

I
25.07.2016
18:38:24
ну можно собраться :)

Michael
25.07.2016
18:39:54
Я просто думал что может быть кто-то уже организовывает.
Было бы интересно я полагаю

I
25.07.2016
18:40:19
я не слышал

Vladimir
25.07.2016
19:32:27
А давайте враппер API вконтакта напишем................
Твой?
> proxy

Vadim
25.07.2016
19:35:29
Нет конечно. Я конечно не очень хороший код пишу, но не настолько ужасный

Vladimir
25.07.2016
19:35:38

Dmitry
25.07.2016
19:35:44
Го

Google

Dmitry
25.07.2016
19:35:53
Покурирую потом статью на Хабр напишу

Vadim
25.07.2016
19:36:10
Я тоже за. Как pet-project неплохо

Vladimir
25.07.2016
19:36:20
Там пиздец, на самом деле.
Ну в смысле с апи вкалтакта работать больно.

Vadim
25.07.2016
19:37:20
А где именно? Я боль испытывал только с авторизацией и сообщениями (хотя я больше никуда не лез)
Я вот для Clojure враппер писал, но не доделал https://github.com/acedened/clojure-vk

Vladimir
25.07.2016
19:38:19
Уродливая параша, нужно всё переписывать.

Vadim
25.07.2016
19:38:54
Это откуда?