?
12.01.2018
15:35:35
Dmitry
12.01.2018
15:36:11
А у нас система так построенна, что делаешь <app_cli> status и сразу можно оценить степень жопы.
Я наоборот с спамом лога активно борюсь.
Evgeny
12.01.2018
15:44:47
возможно когда-нибудь и я буду бороться
Google
Ilja
12.01.2018
16:11:37
Dmitry и Eugene а где-нибудь о таких подходах можно подробнее почитать? Посоветуете?
Алекс
12.01.2018
18:25:38
Ребят правда ли что 0-x=0!!!
Alex
12.01.2018
18:27:02
Alexey
12.01.2018
23:51:05
Ребят, правда ли, что P = NP!!!
Azat
13.01.2018
06:36:28
Вроде ещё не доказано
Alexey
13.01.2018
06:39:03
Да, конечно, это шутка
Evgeny
13.01.2018
06:57:11
Ребят, правда ли, что на любом невырожденном проективном комплексном алгебраическом многообразии любой класс Ходжа представляет собой рациональную линейную комбинацию классов алгебраических циклов?
И как это сделать на Эликсире?
Спасибо тебе, Б-г, что создал википедию!
Артем
13.01.2018
07:08:36
:ets.match(table_bid, {:"$1", :"$2"})
это оптимальный способ прочитать все из таблицы ets или есть что-то проще?
Alexander
13.01.2018
08:10:42
А я делал :ets.fold
Evgeny
13.01.2018
13:30:04
написал я свой кастомный форматтер логов:
def format(level, message, timestamp, metadata) do
...
end
указал в конфиге, вроде работает, но, я пытаюсь пихнуть дополнительные метаданные
Logger.info("message", domain: :web
а они (метаданные) в форматтер не попадают.
Google
Evgeny
13.01.2018
13:31:19
То есть параметр metadata передаваемый в функцию format - всегда пустой список
ЧЯДНТ?
Даже без катомного форматтера. просто в конфиге написал
format: "$time $metadata[$level] $levelpad$message\n"
один хрен, метеданные переданные через
Logger.info не отображаются
короче метаданные не фурычат, если лог сделан из "главного" процесса,
или из процесса супервизора, не пойму точно
Артем
13.01.2018
16:34:49
что-то под вечер башка совсем не варит)) может, кто подскажет правильный способ преобразовать лист вида [%{"c" => "c", "d" => "d"}, %{"e" => "e"}, %{"f" => "f"}] в мап %{"c" => "c", "d" => "d", "e" => "e","f" => "f"} ))
Никита
13.01.2018
17:52:49
Дла начала надо придушить того, кто этот лист сформировал)
думаю, это лучший вариант)
Andrey ?
13.01.2018
17:54:24
Никита
13.01.2018
17:54:50
[1, 2, 3, 4]
|> Enum.chunk(2)
|> Enum.map(fn [a, b] -> {a, b} end)
|> Map.new
stack overflow
Aldar
13.01.2018
17:56:26
Dan
13.01.2018
17:58:44
Никита
13.01.2018
17:58:59
Да ну это не решит)
но на библиотеку Enum должно натолкнуть. Хотя бы на документацию)
Fey
13.01.2018
18:03:43
for map <- list, {key, value} <- map, into: %{}, do: {key, value}
или даже for map <- list, item <- map, into: %{}, do: item
Артем
13.01.2018
18:08:46
[%{"c" => "c", "d" => "d"}, %{"e" => "e"}, %{"f" => "f"}] |> Enum.chunk(2) |> Enum.map(fn [a, b] -> {a, b} end) |> Map.new
Google
Артем
13.01.2018
18:10:07
%{%{"c" => "c", "d" => "d"} => %{"e" => "e"}}
Alex
13.01.2018
18:15:42
Артем
13.01.2018
18:22:08
iex(4)> a = [%{"c" => "c", "d" => "d"}, %{"e" => "e"}]
[%{"c" => "c", "d" => "d"}, %{"e" => "e"}]
iex(5)> b = %{"a" => "a", "b" => "b"}
%{"a" => "a", "b" => "b"}
iex(6)> Enum.reduce(a, b, fn (map, acc) -> Map.merge(acc, map) end)
%{"a" => "a", "b" => "b", "c" => "c", "d" => "d", "e" => "e"}
реально кстати редьюс катит всем респект
Evgeny
13.01.2018
18:32:26
А Process.put и Process.get сохраняет значения в некоем глобальном словаре или в локальном словаре текущего процесса?
Fey
13.01.2018
19:19:50
в локальном
Alexey
13.01.2018
19:20:56
это, как бы, плохая практика
Alex
13.01.2018
19:31:02
это, как бы, плохая практика
Но приемлемая, если припрет. Данные для метрик, метаданные логов и не только, прочие подобные штуки нормально хранить в process dictionary
Alexey
13.01.2018
19:31:40
каюсь. применяю иногда )
Макс Лапшин вон в словарь процесса кладет имя процесса и прочие теги. тогда при дебаге по стейту сразу видно в словаре - чем является процесс
Alex
13.01.2018
19:35:36
Ну я это и назвал прочими метаданными
Buckler
13.01.2018
23:43:21
Hello, gsomix!
Please, calculate:
30+74=...
If you don't answer - you'll get banned from the channel...
Good luck!
Evgeny
14.01.2018
18:03:51
а почему даже в полном покое beam.smp кушает 4-5% процессора? Что оно там делает?
запущен феникс, экто, логгеры. мои процессы есть, но они все в ожидании сообщений
Alister
14.01.2018
18:05:39
он майнит биткойны
Evgeny
14.01.2018
18:06:44
все, нашел, кто майнит биткоины
это был эрланговский observer ?
который я сам же и запустил
Admin
Alister
14.01.2018
18:07:46
сам себе молодец
Google
Evgeny
14.01.2018
18:08:02
ССЗМ
Артем
14.01.2018
18:16:06
посоны, а какой клиент для телеграмма повеселее? их что-то совсем много, мне понравился https://github.com/Fnux/telegram-mt-elixir - но может есть какие-то проверенные решения? задача пока уметь писать в личку и группу нотификейшны, но позже и реагировать на сообщения надо уметь
Any
14.01.2018
18:18:57
$ergi0
14.01.2018
20:43:21
Ужас, пять минут думал, где подвох в вопросе ;)))
Dim
15.01.2018
09:17:35
Подскажите, есть ли возможность как нибудь дебажить дистилери релиз упакованный в докер контейнер?
Артем
15.01.2018
09:18:56
слышал тут считают самым крутым дебагом io.inspect и тесты
Vladimir
15.01.2018
09:20:01
Logger ещё
Andrey
15.01.2018
09:20:32
вообще дебажить релиз выглядит сомнительной идеей.
видимо раз встает такая задача то нужно делать логирование (+ метрики) которое позволит ответить на нужные вопросы
но если прям нужно дебажить, то можно remote shell сделать, и всякими obeserver-ами, чем угодно пытаться смотреть состояние системы
если нужно прямо по шагам исполнять, то можно попробовать плясать от code-reload где в новом коде есть pry, если конечно апка умеет релоадить код нормально (но это путь в ад к.м.к)
Sergey
15.01.2018
09:25:20
Можно ещё Макса Лапшина послушать:
https://www.youtube.com/watch?v=Of-xg6OKpLg
Alex
15.01.2018
09:28:43
Dim
15.01.2018
09:31:08
ок, спасибо. А чем плох вариант с дебагером?
Alex
15.01.2018
09:31:13
на интроспекцию и отладку довольно сложно полагаться в условиях, когда что-то происходит быстро, решительно.
ну и в докер пролезть подключением к ноде как-то сложно
если для запуска без докера можно провесить пачку туннелей и прицепиться к ноде, то как пролезть в докер, который не -net=host я так навскидку не представляю
Dmitry
15.01.2018
09:36:47
Есть ещё трейсинг
Dim
15.01.2018
09:36:53
Dmitry
15.01.2018
09:37:05
https://github.com/fishcakez/dbg
https://github.com/liveforeverx/exrun
Google
Dmitry
15.01.2018
09:38:13
https://github.com/ferd/recon/
Taras ?
15.01.2018
09:38:28
Vladimir
15.01.2018
09:40:28
Alex
15.01.2018
09:42:39
Andrey
15.01.2018
09:42:45
а можно всё запускать с network=host