Size: a a a

2020 March 05

DS

D & S in pro.elixir
C call вроде понятно
источник

V

V in pro.elixir
Dmitry (Deex) Ivanov
Вроде всё так делается. Только заменю "много программистов" на "достаточно программистов"
Когда у меня мелкий спрашивает "а что, если супербогатый человек скупит все дома в мире - остальным людям негде будет жить?" - я понимаю, он мелкий. Я ему объясняю, что логическая цепочка верна, а исходный тезис - фантастичен.
Видя то же самое ("Если супербогатый заказчик вложит достаточно денег - он выпустит браузер с поддержкой брейнфакскрипта") в чате людей за тридцать я удивляюсь.
источник

PG

Pïg Grëënëst in pro.elixir
D & S
И еще никто не подскажет пример нормальных тестов на генсервер, в том числе интересует на handle_cast
источник

DI

Dmitry (Deex) Ivanov in pro.elixir
V
Когда у меня мелкий спрашивает "а что, если супербогатый человек скупит все дома в мире - остальным людям негде будет жить?" - я понимаю, он мелкий. Я ему объясняю, что логическая цепочка верна, а исходный тезис - фантастичен.
Видя то же самое ("Если супербогатый заказчик вложит достаточно денег - он выпустит браузер с поддержкой брейнфакскрипта") в чате людей за тридцать я удивляюсь.
Думаю тут все осознают, что никто так делать не будет
источник

PG

Pïg Grëënëst in pro.elixir
извините за медиум
источник

SM

Sergei Maximov in pro.elixir
Sergei Maximov
Тут не очень хорошо посылать сообщение себе до того, как процесс вошёл в цикл обработки сообщений. Я бы возвращал из init тапл {:ok, state, {:continue, term}} и реализовал бы колбэк handle_continue.

Вызывать внутри модуля себя лучше не по имени, а через макрос __MODULE__ (а за редким исключением всегда лучше просто вызвать локальную функцию).
TelnetChat.accept блокирует процесс
источник

V

V in pro.elixir
Dmitry (Deex) Ivanov
Думаю тут все осознают, что никто так делать не будет
Сама постановка вопроса "если вкинуть бесконечный ресурс - можно сделать что угодно" - бессмысленна
источник

DS

D & S in pro.elixir
Я прекрасно это понимаю,  просто энти пойнт, который ждет новый конекшн, и при его появлении спаунит нового клиента, и заново блокируется до появления нового. Если есть идеи как улучшить, то рад выслушать
источник

DS

D & S in pro.elixir
В реальной апликухе, наверное нужно использовать пулл, но пока так как есть
источник

a

arikai in pro.elixir
Sergei Maximov
Тут не очень хорошо посылать сообщение себе до того, как процесс вошёл в цикл обработки сообщений. Я бы возвращал из init тапл {:ok, state, {:continue, term}} и реализовал бы колбэк handle_continue.

Вызывать внутри модуля себя лучше не по имени, а через макрос __MODULE__ (а за редким исключением всегда лучше просто вызвать локальную функцию).
Continue не самая новая штука: раньше только так и делали.
Но пользоваться, конечно, надо, раз наконец есть :)
источник

DI

Dmitry (Deex) Ivanov in pro.elixir
V
Сама постановка вопроса "если вкинуть бесконечный ресурс - можно сделать что угодно" - бессмысленна
Ресурс достаточно конечный. Большой, но определённый. Надо понимать принципиальную возможность реализации. Сейчас никто этим не будет заниматься по какому-то перечню причин. А завтра кто-то может придумать как это реализовать с выгодой (а может не придумать)
Но компании экспериментируют, добавляют возможность писать на c#, python для браузера уже сегодня. Сейчас с помощью webassembly, как будет завтра я не знаю
источник

DS

D & S in pro.elixir
arikai
Continue не самая новая штука: раньше только так и делали.
Но пользоваться, конечно, надо, раз наконец есть :)
а с какой версии появилась ?
источник

a

arikai in pro.elixir
D & S
а с какой версии появилась ?
источник

SM

Sergei Maximov in pro.elixir
arikai
Continue не самая новая штука: раньше только так и делали.
Но пользоваться, конечно, надо, раз наконец есть :)
Если в вашем OTP нет continue, то можно делать как-то так: :proc_lib.start_link + :gen_server.enter_loop
источник

PG

Pïg Grëënëst in pro.elixir
Sergei Maximov
Если в вашем OTP нет continue, то можно делать как-то так: :proc_lib.start_link + :gen_server.enter_loop
это уже какие-то advanced приседания, но зачем?
источник

SM

Sergei Maximov in pro.elixir
D & S
Я прекрасно это понимаю,  просто энти пойнт, который ждет новый конекшн, и при его появлении спаунит нового клиента, и заново блокируется до появления нового. Если есть идеи как улучшить, то рад выслушать
У меня новых идей по этому поводу нет, сама задача написания неблокирующего TCP сервера не нова для Erlang/Elixir, поэтому советую просто погуглить, как это делают другие.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Sergei Maximov
У меня новых идей по этому поводу нет, сама задача написания неблокирующего TCP сервера не нова для Erlang/Elixir, поэтому советую просто погуглить, как это делают другие.
Где он блокирует то?
источник

DS

D & S in pro.elixir
Ну на ассепт
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А как он должен?
источник

DS

D & S in pro.elixir
Не знаю, я не писал до этого tcp сервер)
источник