
Evgeny
04.01.2018
15:59:38
да и вообще, очереди с приоритетами не такая уж редкая вещь

?
04.01.2018
16:22:25
Я запустил mix phx.server, потом случайно нажал ^Z. Теперь не могу снвова запустить эту команду, говорит, что адрес уже используется, и вообще. Как убить этот страшный фонвоый процесс7

Marat
04.01.2018
16:23:29

Slava
04.01.2018
16:23:58
или просто глянь в top айдишник процесса и страшно его убей

Google

?
04.01.2018
16:23:59

Pig
04.01.2018
16:28:38

Slava
04.01.2018
16:29:13
как-то так, да

?
04.01.2018
16:36:53
У меня есть рут get "/:year/:month", MonthController, :show. Под него, видимо, попадают все ассеты. На работоспособность программы не влияет, но терминал весь красный. Что делать?

Azat
04.01.2018
16:41:56
Поменять на что-нибудь вида /m/:year/:month ?

?
04.01.2018
16:42:15
не вариант. это было бы глупо
вся суть программы — календарь

Evgeny
04.01.2018
18:35:24
написать Plug, который будет в зависимости от year и month либо ничего не делать либо менять путь на /m/:year/:month.
Костыльно, но будет работать
Я вот даже любопытства ради накидал говна.
В Endpoint добавляем plug-функцию:
def calendar(%{path_info: [year, month]} = conn, _opts) do
if Regex.match?(~r/[0-9]{4}/, year) && Regex.match?(~r/[0-9]{2}/, month) do
%{conn | path_info: ["m" | conn.path_info] }
else
conn
end
end
def calendar(conn, _opts) do
conn
end
Там же перед плагом роутера дописываем этот наш плаг:
plug :calendar
plug MyAppWeb.Router
Ну а затем уже в роутере пишем
get "/m/:year/:month", MonthController, :show
даже наверное надо пихать это плаг вообще ближе к самому началу, до статики:
plug :calendar
plug Plug.Static,
...

Google

Dmitry
04.01.2018
18:51:47
@Virviil Это не антипаттерн и не косяк в архитектуре. Селективный receive используется очень много где в самом OTP, в особенности когда нужно обработать определённое конкретное сообщение, но при этом не трогать другие(да тот же GenServer.call так делает, ожидая ответ на свой запрос).

Dmitry
04.01.2018
18:55:25

Dmitry
04.01.2018
18:56:03
@Virviil Конкретно такого там нет, но селективный receive используется.

Dmitry
04.01.2018
18:56:19

Dmitry
04.01.2018
18:56:26
Вначале это, а потом это, а потом может это

Dmitry
04.01.2018
18:56:43
Я имел ввиду антипаттерном вот этот вот подход
В лупе их можно в рядок выписать
Без ветвления
Тогда будет норм

Dmitry
04.01.2018
18:59:26
Зависит от ситуации.
Сообщения из меилбокса имеет смысл доставать вначале перед обработкой, если процессу их очень много приходит.
В других случаях селективный receive удобнее

Any
05.01.2018
15:30:49
Парни, я деплою приложение с помощью edeliver. После билда идет загрузка релиза на прод (Uploading archive of release ххх from local release store). Я правильно понимаю, что сначала релиз скачивается ко мне с билд-сервера, а потом загружается на прод? Дело в том, что у меня билд и прод сервер - один и тот же, а вот скорость аплоада крайне низкая, из-за чего данный этап занимает очень долгое время и часто отваливается. Может есть способ как-то оптимизировать сей процесс, залив релиз на прод непосредственно с билд-сервера?
как вариант, может можно настроить полностью удаленную сборку приложения, чтоб я заливал только коммит, а дальше оно само билдилось?

Dmitry
05.01.2018
18:16:12

Any
05.01.2018
18:21:55

Dmitry
05.01.2018
18:24:02
а в чем лучше?
Никто не знает. Некоторые подозревают, что деплоить нужно в докер. Другие делают Bootleg. Третие собирают в CI релизы и пушат через Mina или Capistrano

Any
05.01.2018
18:26:38

Le
05.01.2018
18:27:29
Той же миной или чем угодно

Google

Le
05.01.2018
18:27:51
Там 5 команд нужно выполнить
В коробке получишь микс на сервере, не придётся хуки для миграций делать

Any
05.01.2018
18:29:31
звучит весьма заманчиво

Le
05.01.2018
18:30:17
Если хочешь докером, то собирай образ на ci, на гитлабовском или циркл, потом запускай команду на сервере которая его с артефактов стащит и запустит
Если что могу конфигами и для первого и для второго способа поделиться

Any
05.01.2018
18:33:37
да, буду весьма признателен
btw, нашел решение в edeliver - https://github.com/edeliver/edeliver/issues/141#issuecomment-242731909

Алекс
06.01.2018
06:14:18
Кто нибудь в рамусе работал?

Den
06.01.2018
07:41:11
Возможно ли юзать Enum в custom guard?
Компилятор ругается, но все же)

Alexander
06.01.2018
11:56:54
это самый крутой "скриншот" что я видел

Alexander
06.01.2018
11:57:46
если это макбук - используй ctrl+cmd+shift+4

Admin
ERROR: S client not available

Alexander
06.01.2018
11:58:02
скриншот области сразу в слипборд

Maxim
06.01.2018
12:05:22
та по фото видно что это не макбук, могу предположить что это леново или асус, а там просто prtscreen и ctrl + v

Никита
06.01.2018
12:11:34
А потом открываешь Пуск-Стандартные-Paint и там контрл-в))

Buckler
06.01.2018
12:12:30
Hello, Timur!
Please, calculate:
64+89=...
If you don't answer - you'll get banned from the channel...
Good luck!

Alex
06.01.2018
12:32:17
в след. Elixir появятся такие штуки https://hexdocs.pm/elixir/master/Kernel.html#defguard/1

Maxim
06.01.2018
12:39:20

Google

Aldar
06.01.2018
12:46:56
кастомные гарды? круто, обошли эрланг

Alexander
06.01.2018
12:49:08

Alex
06.01.2018
12:56:46
То есть, это псевдонимы для гардов по сути

Alexey
06.01.2018
13:05:36

Aldar
06.01.2018
13:22:27
хотя очевидно что это нарушило бы работу паттерн матчинга эрланга
если б любые функции можно было туда вставлять

Alex
06.01.2018
13:29:06
Я подозреваю, что можно так собирать функции в время компиляции, чтобы в качестве гардов использовать что угодно, но это сложно и нужно будет перепахать заметную часть компилятора
Да и в конце концов, зачем

Dmitry
06.01.2018
16:39:51

Alexey
06.01.2018
17:23:45

Ilja
06.01.2018
22:32:06
Про кастомные гуарды: наверно это просто позволяет собирать громоздкие гуард-конструкции во что-то именованное. Удобно. А ещё такие штуки можно тестировать.

Dany
06.01.2018
22:48:33
привет ребята
что нужно знать для вката в эликсир?
сорри за платиновый (наверное) вопрос

Евгений
06.01.2018
22:49:21
Просто берешь и вкатываешься.
Ну синтаксис надо. Про ОТП почитать можно.