
Dmitry
31.10.2016
11:05:31
У чувака который делает poison 150 строк эта функция занимает
Это типо Json encoding
Так что я его либу взял
Блин, то что надо)

Google

Dmitry
31.10.2016
11:08:00
Надо чуваку в poison PR сделать
выкинуть 150 строк))

Dmitry ?
31.10.2016
11:09:02
Ну всё же тут IO
Вернее только O :)

Dmitry
31.10.2016
11:10:02
Потому что ~S(text\ntext) => "text\ntext"
блин, в смысле "text\\ntext"

Dmitry ?
31.10.2016
11:17:02
Блин, а я протупил с этим inspect. Сейчас понял, что этот inspect это Kernel.inspect, а не IO.inspect

Dmitry
31.10.2016
11:21:37
Я думаю Kernel сделан на
с
Я бы так делал

Can
01.11.2016
03:50:06
Все немножко сложнее
Если заинспектить то что нельзя засунуть в жсон

Google

Can
01.11.2016
03:50:32
То оно все равно заинспектится

Vasily
01.11.2016
07:46:03
Ставить пробелы вокруг хешей/кортежей или нет - вот в чём вопрос: {:ok, content} vs { :ok, content }

Alexander
01.11.2016
07:54:37
по стайлгайдам - не ставить
Use spaces around operators, after commas, colons and semicolons. Do not put spaces around matched pairs like brackets, parentheses, etc. Whitespace might be (mostly) irrelevant to the Elixir runtime, but its proper use is the key to writing easily readable code.

Vasily
01.11.2016
07:56:48
?

Dmitry
01.11.2016
08:45:35
Есть штука под названием credo по-моему
Проверяет стиль

Vasily
01.11.2016
08:46:07
Я в курсе)
Если прогнать credo на файле где все кортежи обрамлены пробелами - он скажет что всё ок, а когда на CI credo проверял весь проект - выкинул ошибки на том же файле со следующей формулировкой: В большинстве случаев ваши кортежи не обрамлены пробелами, но здесь - есть пробелы.
Вот так работает Credo) В принципе это наверное неплохо, но было неожиданно, что линтер использует динамические правила.

Dmitry
01.11.2016
08:49:45
По идее можно законфтгурировать все жестко, а потом этот файл во все проекты подсовывать. Я правда не уверен

Taras ?
01.11.2016
17:43:35
всем привет)
у мене вопрос насчет модулей и функций —
есть варианты
1) web/web.ex прописать import Module.Modulee для всех model/controller\etc
2) в нужном нам модуле сверху прописать тот же import Module.Modulee
3) просто вызывать нужную функцию в нужном нам месте по полному пути-названию Modude.Modulee.need_func(...)...
какой вариант быстрее работает - 2й или 3й ?
какой вариант более правильный?

Alexander
01.11.2016
20:06:30
они одинаково будут работать, в скорости нет разницы, импорты, алиасы и прочее на этапе компиляции работает. Лучше использовать alias или, как вариант, если ты используешь только конкретные функции из модуля, можно импортировать их явно

Vasily
01.11.2016
21:04:43
Для матчинга непустоо списка можно только такой шаблон использовать: [_ | _] ? Или есть альтернативы?

Serhij
01.11.2016
21:05:19
еще можно guard clause на length сделать

Vasily
01.11.2016
22:51:32
Как можно наглядно продемонстрировать разницу между общей рекурсией и хвостовой? Есль ли какие-то анализаторы кода (для Elixir) которые находят рекурсии? Простое тыкание носом в описание хвостовой рекурсии не приводит к результату(

Aldar
01.11.2016
23:32:14
http://theerlangelist.com/

Vasily
01.11.2016
23:34:32
Привет Aldar)
Это ответ на вопрос выше или просто ссылка?

Aldar
01.11.2016
23:37:57
Хай, просто ссылка

Google

Vasily
01.11.2016
23:38:26
?

Aldar
01.11.2016
23:39:59
Блог Sasa Juric - автора Elixir in action

Vasily
01.11.2016
23:41:36
Ты тоже алхимичишь?

Aldar
01.11.2016
23:41:53
вот кое чего нашел, но пока не читал)
Вот еще обсуждение
https://elixirforum.com/t/tail-call-optimization-in-elixir-erlang-not-as-efficient-and-important-as-you-probably-think/880/3

Vasily
01.11.2016
23:43:44
Занятно. Спасибо.

Dmitry
02.11.2016
20:12:04
От чего может быть application terminating shutdown?
Всетки получил я в конце концов эту хрень
После нного количества рестарта генсервера приложение падает

Dmitry
02.11.2016
20:12:47
Сука

Евгений
02.11.2016
20:16:20
может генсервер валит супервизор какой-то хитрый
ну и цитата из доков:
:max_restarts - the maximum amount of restarts allowed in a time frame. Defaults to 3.
:max_seconds - the time frame in which :max_restarts applies. Defaults to 5.
опции в supervise

[Anonymous]
02.11.2016
20:19:23
Привет ребят, немного офтоп но вы вроде люди соображающие, может кто слышал, существует ли какой-нибудь фонд, которому в доверительное управление можно деньги дать, а он сам портфель подберет?

Dmitry
02.11.2016
20:19:42

Евгений
02.11.2016
20:20:17
а это поможет отдебажить?)

Dmitry
02.11.2016
20:44:22
У меня все приложение построено на том, что все падает все время

Google

Dmitry
02.11.2016
20:44:43
Приходится использовать легаси либу на с с утечкой памяти
Которую я убиваю каждые несколько минут

Admin
ERROR: S client not available

Can
02.11.2016
21:23:44
Start: permanent
def project do
[app: :tg_bot,
version: "0.1.0",
elixir: "~> 1.3",
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,
deps: deps()]
end
children = [
# Starts a worker by calling: TgBot.Worker.start_link(arg1, arg2, arg3)
# worker(TgBot.Worker, [arg1, arg2, arg3]),
worker(TgBot.Repo, [], restart: :permanent)
]
Я ж писал уже

Alexander
02.11.2016
23:09:36

Dmitry
02.11.2016
23:10:16
Хз только почему

Alexander
02.11.2016
23:10:44
Архитектура эрланга. Это не просто так сделано
Да и доки есть
И книга написана

Dmitry
02.11.2016
23:11:09
Хзхз
То падает - то нет

Alexander
02.11.2016
23:11:32
Если делать перманент рестарт и у тебя падает воркр. То ты окончишь с тем что у тебя раком встанет весь сервер

Dmitry
02.11.2016
23:11:51
Пидоры вот честно!

Alexander
02.11.2016
23:11:52
Я писал уже что жозе может свой лет ит креш себе в жопу запихать

Dmitry
02.11.2016
23:12:35
Блин, я все равно не понимаю какая предпосылка чтобы это не могло работать бесконечно

Google

Alexander
02.11.2016
23:14:00
http://learnyousomeerlang.com/supervisors
Вообще замечательная книга
Я из нее узнал что у супервайзера есть интервал
И нужно туда пихать infinite
Иначе он все равно по цепочке уйдет
Эликсир как coffeescript на js, только над эрлангом
Чуть что, нужно идти и читать что делает эрланг

Can
03.11.2016
01:05:28
Решили проблему?
Инфинит помогает?

Dmitry
03.11.2016
01:06:05
Не понятно

Can
03.11.2016
01:07:18
Ну типа поидее все гладко, у тебя стоит у воркера инфинит, он бесконечно ребутается, при большом количестве редутов по цепочке падает все до аппы
Но аппа тоже рестартится инфинит