These are chat archives for synrc/n2o

25th
Mar 2016
Roman
@AstRonin
Mar 25 2016 05:11
Что за DO ?
Ryuuji Kagami
@kagami-ryuuji
Mar 25 2016 06:20
@AstRonin > дигитал_океан
DigitalOcean
teleratec
@teleratec
Mar 25 2016 06:38
народ, а есть модуль для кросспостинга в социалки в n2o?
Vitaly Shutko
@sokal32
Mar 25 2016 10:02
@5HT можешь просветить душу находящуюся в темноте?) нужно отправлять много http-запросов с erlang. что лучше, создать пул процессов занимая их и освобождая (какой-то poolboy), а в рамках полученного из пула процесса делать синхронный вызов httpc:request или просто в рамках одного процесса срать асинхронные запросы через httpc:request {sync, false} получая ответ обратным сообщением в mailbox и не думать ни о чем, пусть erlang сам разбирается? что-то я теряюсь в данном вопросе. или еще есть вариант тупо при необходимости отправить запрос просто создавать новый процесс и опять такие в рамках этого процесса выполнять синхронный httpc:request
Namdak Tonpa
@5HT
Mar 25 2016 10:03
httpc при нагрузках (как и все другие клиенты) может залипать, поэтому нужны рестарты, все это делать конечно внутри какого-то ген сервера
никаких пулбоев
Vitaly Shutko
@sokal32
Mar 25 2016 10:03
а воркеров пул фиксированный или создавать по поркеру на запрос?
Namdak Tonpa
@5HT
Mar 25 2016 10:05
на запрос, потому что рестартовать же надо ген_сервер если httpc не ответил, залип или выдал ошибку
а сколько у тебя запросов?
httpc же обычно на сервисы ходит
или ты хочешь милиону юзеров в руки дать httpc канал?
Vitaly Shutko
@sokal32
Mar 25 2016 10:06
ну это отправка смс для логина, пока будет фигня запросов, а в переспективе дохера
Namdak Tonpa
@5HT
Mar 25 2016 10:06
у тебя сервис должен быть One Time Password Service
который ходит на siteheart или проплаченый сервис
и все пользователи через него обращаться должны
Namdak Tonpa
@5HT
Mar 25 2016 10:14
тут лучше сразу построить универсальную штуку которая по эндпонйтам ходит с помощью httpc и накапливает ответы в акумулятор в монадическом стиле
бывает так что ннужно пойти на один http эндпойнт потом на второй и так по очереди
Vitaly Shutko
@sokal32
Mar 25 2016 10:14
блин, так и знал, что мне понадобится знание монад (facepalm)
пойду читать)
Namdak Tonpa
@5HT
Mar 25 2016 10:15
вот я для таких вещей сделел универсальную стейтлесс монаду и запускаю ее для каждого запроса
rusjava8
@rusjava8
Mar 25 2016 10:27
VQNxpI3Co1g.jpg
Roman
@AstRonin
Mar 25 2016 10:29
чтоб использовать монады надо обязательно ставить erlando?
Namdak Tonpa
@5HT
Mar 25 2016 10:37
нет
просто накапливай ответы в акумуляторе, и разорви упаковку ответа, упаковку параметров и вызов httpc реквеста в разные функции.
  BPE   =  List
  JSON  =  Binary
  ACKS  =  {error,Data,NewAcc}
        |  {ok,Data,NewAcc}

  req   BPE   -> JSON
  call  JSON  -> ACKS
  ans   ACKS  -> BPE
если ok идем дальше по цепочке монадической (твои вложеные case)
если ошибка отдаем акумулятор, либо накапливаем и идем дальше
Roman
@AstRonin
Mar 25 2016 10:41
ага, вкурил
Namdak Tonpa
@5HT
Mar 25 2016 10:41
если reason timeout — то повтор, а не возврат или следующий
и так далее
Oleg Zinchenko
@cystbear
Mar 25 2016 15:48
что юзать для id процесса при simple_one_for_one супервайзере если стартуешь и тушишь воркеры динамически через start_child/2?
я make_ref юзаю
это вообще норма?
Oleg Zinchenko
@cystbear
Mar 25 2016 16:35
задал то же вопрос в гркппеуппк
dev-ua/erlang только без пометки что я юзаю, никто не ответил, либо пятница либо нубы
Namdak Tonpa
@5HT
Mar 25 2016 19:02
норма но можно генерировать и человеческие имена
Oleg Zinchenko
@cystbear
Mar 25 2016 22:37
разобрался, то я еблан
надо было gen_server:start_link/3 юзать
а я gen_server:start_link/4 юзал, получался именованный воркер, и ессно, второй такой не запускался -- я нубчик
Namdak Tonpa
@5HT
Mar 25 2016 22:38
> supervisor:which_children(n2o).
[{{system,"timer"},<0.172.0>,worker,[n2o]}]
вот такие у меня имена
этот таймер инвалидейтит кеш как в редисе expire
Oleg Zinchenko
@cystbear
Mar 25 2016 22:39
gen_server:start_link(?MODULE, Args, [])
vs
gen_server:start_link({local, ?MODULE}, ?MODULE, Args, [])
Kirill Nesmeyanov
@SerafimArts
Mar 25 2016 22:40
@cystbear зашёл, привёл, буду вникать, ещё раз спасибо
KarmaBot
@KarmaBot
Mar 25 2016 22:40
Спасибо (+1) для @cystbear принято! Текущая карма +3.
Oleg Zinchenko
@cystbear
Mar 25 2016 22:40
помнишь что @sokal32 спрашивал?
то он не для меня спрашивал, но то ВНЕЗАПНО то же самое делал
отправляю http запросы
@5HT я с канала php-ua/symfony пацанов позвал, хотял Erlang изучать
Namdak Tonpa
@5HT
Mar 25 2016 22:41
./mad dep com pla rep
и вперед!
Oleg Zinchenko
@cystbear
Mar 25 2016 22:41
посоветовал
Erlang+OTP+N2O/Smoothie+KVS/Cocktail
ну что бы все по феншую было
Kirill Nesmeyanov
@SerafimArts
Mar 25 2016 22:42
котаны, я не шарю, а n2o получается наша отечественная штука? о_0
Oleg Zinchenko
@cystbear
Mar 25 2016 22:44

помнишь что @sokal32 спрашивал?
то он не для меня спрашивал, но то ВНЕЗАПНО то же самое делал
отправляю http запросы

то я просто sup создал [simple_one_for_one] и спавню воркеры ПЕРЕД запросом
supervisor:start_child(?MODULE, [])

а в самом gen_server проебал
gen_server:start_link({local, ?MODULE}, ?MODULE, Args, []) -- писал
gen_server:start_link(?MODULE, Args, []) -- надо было

Namdak Tonpa
@5HT
Mar 25 2016 22:44
я ему в приват ответил
Oleg Zinchenko
@cystbear
Mar 25 2016 22:44
ну ок в пон спрошу
Namdak Tonpa
@5HT
Mar 25 2016 22:46
@SerafimArts в России есть представительство https://erlang.one
Kirill Nesmeyanov
@SerafimArts
Mar 25 2016 22:46
@5HT ничоси
Европа и Россия
Namdak Tonpa
@5HT
Mar 25 2016 22:47
заказывайте у Erlang One и @m-2k проекты и поддержку )
Oleg Zinchenko
@cystbear
Mar 25 2016 22:49
erlang.one это Маг захуярил?
Namdak Tonpa
@5HT
Mar 25 2016 22:49
а кто ж
Oleg Zinchenko
@cystbear
Mar 25 2016 22:50
+1
Kirill Nesmeyanov
@SerafimArts
Mar 25 2016 22:50
да, надо бы ещё эрланг подучить, интересная штукенция, судя по докам
хотя сложно вочпринимать такой код после хакса, шарпа, джавы, пыха, es7 и прочих, он даже на кофе мало похож
Oleg Zinchenko
@cystbear
Mar 25 2016 22:56
маг конечно будет меня обсырать но начни читать
http://learnyousomeerlang.com/
Kirill Nesmeyanov
@SerafimArts
Mar 25 2016 22:59
та я уже и так разобрался =)))
осталось понять что такое рекорды
Namdak Tonpa
@5HT
Mar 25 2016 22:59
рекорды это как классы
ты можешь там даже функции держать
Kirill Nesmeyanov
@SerafimArts
Mar 25 2016 22:59
ну как в дельфях походу
Namdak Tonpa
@5HT
Mar 25 2016 23:00
ООП да
но в рекордах мы носим обычно только то что храним
и быстро ищем
а не вообще все как в ООП
Kirill Nesmeyanov
@SerafimArts
Mar 25 2016 23:01
понравилось как операции запятыми делится
а в конце точка
это прикольно
Namdak Tonpa
@5HT
Mar 25 2016 23:01
это Пролог
Kirill Nesmeyanov
@SerafimArts
Mar 25 2016 23:01
я не знаком с прологом, увы
Namdak Tonpa
@5HT
Mar 25 2016 23:04
блин эрлач стал матурный уже
на кнопке нотифай появились последние посты
Kirill Nesmeyanov
@SerafimArts
Mar 25 2016 23:05
if 1 =:= 2; 1 =:= 1 ->
    works
end,
ватафак? :DDD
у меня мозг взорвался
Namdak Tonpa
@5HT
Mar 25 2016 23:07
эрлач реально поднялся
единственно шо видос грузится каждый раз
при переходе с имадж стрима на борд
ну и этот видос немного блокирует страницу
а так все реально версия 2.0
уверенная двоечка :-)
Namdak Tonpa
@5HT
Mar 25 2016 23:15
оствил реквест https://erlach.co/r/1g
Об Эрлаче: https://erlach.co/e/2
– Изображения не ресайзятся вплоть до 25 МП. Мы за качественные фотографии.
японский стрим шо передает
Oleg Zinchenko
@cystbear
Mar 25 2016 23:44

ватафак? :grinning:DD

ну ";" это же ИЛИ

1 == 1 OR 1 == 2
явно же true