@proelixir

Страница 916 из 1045
Александр
26.03.2018
10:13:00
было бы на сях, можно было был про NIF подумать

Dmitry
26.03.2018
10:13:26
Ну, подразуемвается наверное, что ты запушкаешь го в докере как микросервис

И это правильный подход к изготовлению софта в 2018 году

Александр
26.03.2018
10:13:48
ну это очень серъёзное усложнение с точки зрения архитектуры + лишние точки отказа + нагрузка на админов

Google
Dmitry
26.03.2018
10:14:44
Я тоже так считаю

Alex
26.03.2018
10:14:53
запустить +1 сервис - нагрузка на админов?..

Dmitry
26.03.2018
10:15:02
Но альтернатива - переписать чихуянихуя на эликсире

Александр
26.03.2018
10:15:03
ну надо мониторить что он работает

Vladimir
26.03.2018
10:15:05
где докер, там кубернетис, а потом тянем за собой etcd/консул и вот это всё.

Александр
26.03.2018
10:15:08
надо его разворачивать

и разработчикам отдельно в том числе

ну в серъёзной компании да

где отдельные крутышы devops

Александр
26.03.2018
10:15:50
но так не у всех

Google
Vladimir
26.03.2018
10:16:01
ну дык мы всегда серьёзная компания по дефолту-то =)

Dmitry
26.03.2018
10:16:11
Если начнёшь - уже не остановиться, это факт

Vladimir
26.03.2018
10:16:14
не докер композ же юзать на проде)

Dmitry
26.03.2018
10:16:35
Просто хуле кзлы переписали на Го, если было на C++ всё норм

Это не мой немой вопрос

Alex
26.03.2018
10:16:56
потому что го проще для мелкой сетевой фигни

Dmitry
26.03.2018
10:17:14
Ну так эликсир ещё проще

Александр
26.03.2018
10:17:17
потому что го проще для мелкой сетевой фигни
а эликсир проще чем го для мелкой сетевой фигни

вот и нашли причину, чтобы переписать =)

Alex
26.03.2018
10:17:26
угу

очень проще

я про язык говорить не буду, но напомню вам одно слово

РЕЛИЗЫ

Dmitry
26.03.2018
10:17:59
Я думаю что парсить bittorent протокол через бинарный паттерн матчинг - это вообще то, где beam себя проявляет

На самом деле на Го сделали, потому что охера программистов на Го

Александр
26.03.2018
10:18:59
РЕЛИЗЫ
у меня коллега полдня билдил го проектик под линукс на маке с непривычки =) (кстати, так и не справился)

так что релизы понятие растяжимое

а если учесть что надо докер контейнеры насовать и.т.п. как выше обсудили, то тема релизов становится ещё интереснее =)

Dmitry
26.03.2018
10:20:00
Причём большинство из них, являясь не очень то профессионалами в программировании (ибо Го лёгкий как яйца карлика), пытаются запихнуть их любимы "Го" везде

Google
Dmitry
26.03.2018
10:55:11
Ребят, а ГенСервер же пока не обработает один запрос, за другой не берется?

если handle_call использовать

Evgeny
26.03.2018
10:58:49
так что если в handle_call самому себе call сделать, то заблочится.

Dmitry
26.03.2018
11:00:42
а я тогда не понимаю вот одного defmodule GS do use GenServer def handle_call({:time, i}, _from, _state) do IO.inspect i for i <- 0..1000000000000000 do i*300 end {:ok, i, nil} end end GenServer.start(GS, name: GS) for i <- 0..10 do spawn fn -> GS.handle_call({:time, i}, nil, nil) end end

for i <- 0..1000000000000000 do i*300 end выполняется очень долго, но когда в цикле делаю 10 handle_call получаю сразу все inspect’ы

Анастасия
26.03.2018
11:13:16
GS.handle_call({:time, i}, nil, nil) -> GS.call ?

Dmitry
26.03.2018
11:18:49
похоже на правду, напишу если не поможет)

спасибо

Dmitry
26.03.2018
11:20:51
@Virviil Так или иначе переписывать кусок софта, который уже работает и используется в production-е без проблем на другом языке и легко интегрируется (Go - как микросервис и без всяких докеров легко интегрируется - я в своей жизни не встречал ничего, что можно было так легко брать, качать бинарник и запускать, как софт на Go) - для этого должны быть очень везкие причины. Есть много библиотек, где не хватает maintainer-ов или времени или разработчиков на Elixir-е, зачем плодить еще больше таких же библиотек, которых некому мейнтейнить? И в данном случае нет вопроса, что же Chihaya не умеет, зачем нужна была бы версия на Elixir-е?

Dmitry
26.03.2018
11:21:51
Мое дела предложить

Но я бы поучаствовал

Если бы кто нибудь этим занялся

Evgeny
26.03.2018
11:42:02
банальный вопрос, что делает receive с сообщениями, которые не матчатся? Просто удаляет их из очереди?

Dmitry
26.03.2018
11:42:49
помогло

Dmitry
26.03.2018
11:44:07
Eugene Остаются висеть на вечно, пока их не накопится много и vm не прибьет OOM-killer.

Evgeny
26.03.2018
11:45:42
http://ndpar.blogspot.ru/2010/11/erlang-explained-selective-receive.html
спс, а то офф-доки такие скудные, что хер поймешь как оно работает на самом деле.

Александр
26.03.2018
11:47:21
спс, а то офф-доки такие скудные, что хер поймешь как оно работает на самом деле.
рекомендую тогда вот тут ещё почитать http://learnyousomeerlang.com/more-on-multiprocessing#selective-receives

я эту книгу с одного захода прочитал

Google
Александр
26.03.2018
11:47:49
там с картинками всё классно разжёвано

дока у эрланга недружелюбная, да

Evgeny
26.03.2018
11:48:06
не, уже все ясно

Интересно, однако. Получается, что задавая нулевые таймауты, можно выгрести из очереди сначала все сообщения одного типа, потом другого и так далее. Хех.

И еще. Насколько я понял GenServer по умолчанию генерит некий умолчальный handle_info, который все неизвестные сообщения выбрасывает из очереди. А если я задам некий handle_info реагирующий на определенный тип сообщений, то будет ли опять сгенерирован умолчальный handle_info для левых сообщений или таки этот "спам" будет засирать мою любимую очередь?

Dmitry
26.03.2018
12:00:04
GenServer в Elixir-е да, и будет все эти сообщения в лог отправлять: received unexpected message in handle_info/2:

Нет, сгенерирован не будет.

Но если не будет catch_all функции, то он просто крэшнится при получении не подходящего сообщения.

GenServer всегда все сообщения из очереди выгребает.

Dmitry
26.03.2018
12:13:32
А насколько большая очередь может быть?

настолько - насколько оперативы хватит?)

Dmitry
26.03.2018
12:19:42
@JustStealIt Ага, пока OOM не прибил VM.

Scas
26.03.2018
13:13:15
кстати из этого следует что если у вас что то ушло в рекурсию и проебались условия выхода то пока они не сожрут память и VM не прибьет ООМ они будут занимать память и крутиться вечно

Vladimir
26.03.2018
13:13:58
Потому мониторинг - обязательная вещь.

Alex
26.03.2018
13:56:39
Антибот?))

Taras ?
26.03.2018
13:57:59
дока у эрланга недружелюбная, да
по мне так в 100 раз лучше чем го)

Dmitriy
26.03.2018
14:38:23
Привет! Можете посоветовать библиотеку клиент для Phoenix на Objective-C ? Взаимодействие с каналами феникса (чат)

Dmitriy
26.03.2018
14:42:50
там какой-то особенный формат сообщений. На js у меня сходу не получилось написать. Только с использованием оф библиотеки

для swift есть, думал для objective-c есть что путнее

Google
Dmitriy
26.03.2018
14:43:38
готовое в смысле

foracall
26.03.2018
14:45:15
jetfire/README.md at master · acmacalister/jetfire · GitHub https://github.com/acmacalister/jetfire/blob/master/README.md

Dmitriy
26.03.2018
14:48:24
спасибо, попробую!

$ergi0
26.03.2018
14:52:06
Подскажите, а когда в тестах для феникса нужен контекст %{conn: conn}?

Мне пишет ворнинг, что нужно использовать build_conn, как начинаю его использовать, пишет, что conn is unused

Alex
26.03.2018
14:53:57
хотя, это предложение наверняка очень опоздало

Dmitriy
26.03.2018
14:55:26
выкинь из схемы каналы и тебе сразу станет сильно проще
не совсем понял, что имеется в виду. Выкинуть каналы при написании клиента или на сервере?

Alex
26.03.2018
14:56:50
вообще не используй каналы феникса. и феникс по сути тоже.

херовый какой-то совет получился

Dmitriy
26.03.2018
14:57:31
ну нет. Я уже написал сервер работающий. На каналах все завязано, вся маршуртизация

это пусть мобильные разработчики разбираются ))

Alex
26.03.2018
14:57:56
ну вот в этом и проблема, да

Страница 916 из 1045