@proelixir

Страница 862 из 1045
Dmitry
24.01.2018
11:34:13
На самом деле вся проблема в IDE

Vladimir
24.01.2018
11:34:34
Похоже, что asn1 нифки не видно.

Модуль asn1_rt

Хз что это. Никогда не юзал

Google
Alex
24.01.2018
11:35:58
Хз что это. Никогда не юзал
там в коллстеке видно, зачем он

и даже более-менее понятно, что это идеевский плагин что-то делает не так.

вопрос в том, что же именно и как это исправить

Alisa
24.01.2018
11:43:07
еще чутьчуть и я этот сервис на ноду перепишу мне говорили что эликсир прост как руби и быстр как ерланг, мол попробуй, понравится

abc
24.01.2018
11:44:52
Нода не лучше

Проще деревянный голанг взять уж тогда

Alexsey
24.01.2018
11:45:36
еще чутьчуть и я этот сервис на ноду перепишу мне говорили что эликсир прост как руби и быстр как ерланг, мол попробуй, понравится
Мне когда-то говорили, что если научиться делать rails g , я стану программистом. Жизнь несправедлива

Alisa
24.01.2018
11:45:54
на голанг тоже разбираться еще что к чему

Alexsey
24.01.2018
11:46:30
Там как раз не промахнешься. Тупее чем пхп

И собирается в бинарь

Alisa
24.01.2018
11:46:49
разве на нем можно быстро писать?

Alexsey
24.01.2018
11:46:55
Можно деплоить по scp

Alisa
24.01.2018
11:47:09
я хипстер и диплою через k8s

Google
Alexsey
24.01.2018
11:47:17
Нет, на нем можно делать только просто. Быстро вряд-ли

Dmitry
24.01.2018
11:49:04
@alisabents - В чем разница в том, как Ваша IDE стартует аппликации?

Alisa
24.01.2018
11:50:05
не знаю, меня больше смущает непонятный стектрейс

Dmitry
24.01.2018
11:50:55
Ну, стектрейс понятный....В смысле нужно привыкнуть.

Просто он крэшится (ошибку показывает) не там, где причина ошибки произошла.

{:ok, test} = {:error, :bad} ** (MatchError) no match of right hand side value: {:error, :bad}

Понимаете, что такое MatchError?

Точнее так, что именно не понятно?

Alisa
24.01.2018
11:53:26
непонятно что за asn1 и почему оно решило падать

Dmitry
24.01.2018
11:55:24
Библиотека в зависимостях Вашего приложения.

mix deps.tree

abc
24.01.2018
11:55:32
просто сейчас всего 555 участников, нам нужно 666 участников и все станет понятно )

Vladimir
24.01.2018
11:55:35
5 секунд гугления: http://www1.erlang.org/doc/man/asn1rt.html "Warning All functions in this module are deprecated and will be removed in a future release."

может из-за этого?

Alisa
24.01.2018
11:59:28
может из-за этого?
но я же ничего не обновлял..

Vladimir
24.01.2018
11:59:53
но я же ничего не обновлял..
софт в зависимостях может быть старый. а версия эрланга новая.

это как предположение

т.е. вызываются функции, которые уже давно депрекейтед и ремовед

Dmitry
24.01.2018
12:02:57
В 20-ой версии erlang-а еще есть этот модуль.

Google
Dmitry
24.01.2018
12:03:05
И сам ниф тоже.

И ошибка говорит скорее, что ниф не загружен.

Больше похоже, что IDE что-то делает с путями, что load не срабатывает.

И еще скрывает ошибку(или ее не видно по другим причинам), которую error_logger должен был напечатать в лог.

Т.е. IDE делает какую-то магию и видимо либо аппликация так сконфигурированна не печатать ошибки error_logger-а, либо IDE скрывает ошибку...Потому что модуль должен напечатать ошибку, в случае, если не загрузился nif: error_logger:error_msg("Unable to load asn1 nif library. " "Failed with error:~n\"~p, ~s\"~n",[E,Str])

Nikita
24.01.2018
12:25:05
Парни, как можно скомпилировать приложение на эликсире локально(со всеми зависимостями) и потом выложить на production?

Ray
24.01.2018
12:29:01
компилировать то, что работает поверх виртуальной машины

Alexander
24.01.2018
12:31:18
можно в docker всё скомпилировать и выложить

Vladimir
24.01.2018
12:32:24
или в .deb упаковать или ещё какой пакет)

Alexander
24.01.2018
12:36:26
тут вопрос скорее локальной сборки, если собрать релиз под маком, то под линухой он не стартанёт

Denis
24.01.2018
12:56:08
тут вопрос скорее локальной сборки, если собрать релиз под маком, то под линухой он не стартанёт
а разве не на BEAM запустится код? он работает по разному на ОС Х и линуксе?

Nikita
24.01.2018
12:56:53
он, не как го, не тащит всё свое добро с собой под всё подряд

собирать надо на такой же оси, на которой хочешь запускать

Buckler
24.01.2018
12:59:42
Hello, Maksik! Please, calculate: 94+12=... If you don't answer - you'll get banned from the channel... Good luck!

Dmitry
24.01.2018
13:12:07
При сборе релиза - если в релизе нет nif-ов.

Можно указать include_erts: false

Google
Dmitry
24.01.2018
13:12:32
Тогда он скомпилирует только .beam - файлы.

И будет ожидать, что erlang - установлен на другой машине.

В таком случае можно хоть на маке скомпилировать и запустить на Linux-е.

В других случаях целевая OS должна совпадать с той, на которой компилируется релиз.

Alex
24.01.2018
13:17:41
а можно вообще релиз не собирать, просто запустить на проде под супервизором через mix

если депсы без nif, работать будет так же

Dmitry
24.01.2018
13:20:08
Можно, но я пока не знаю причин, по которым есть смысл не использовать релиз.

Удобная упаковка.

Alex
24.01.2018
13:20:24
то же самое я могу сказать про релизы

упаковка слишком много на себя берет

Alisa
24.01.2018
14:10:52
а erlang сложно вообще осилить за выходные например?

или это сложный язык с сотней абстракций непонятных? а ерланг не умрет в ближайшие 5 лет?

Alexey
24.01.2018
14:11:51
за выходные - врядли

Vladimir
24.01.2018
14:12:10
"эрланг учится за 2 недели"(с)

эликсир - вряд ли быстрее))

Alisa
24.01.2018
14:12:31
блин ну обещали же что простой как руби

?

никогда больше не поверю евангелистам

Alexey
24.01.2018
14:13:31
ну язык может и простой. а вот паттерны применения. задачи решаются не так

Google
Alexey
24.01.2018
14:14:20
у меня есть вот примеры библиотек на эликсире, которые написаны го-никами по гошному. не правильно это

Mikhail
24.01.2018
14:14:53
это ты про адаптер nats?

Alexey
24.01.2018
14:14:57
ога

там идут выражения типа x = 1 а потом if (какое-то условие) , то x= 2 и так далее

MrFlorius
24.01.2018
14:20:08
Сделал модель в фениксе простенькую, пишу mix ecto.gen.migration create_user И мне генериться пустая миграция, что деалть?

Dmitry
24.01.2018
14:20:14
@bolshakov_av Ну, рубисты тоже пишут иногда так код эликсира, что его потом нельзя использовать из разных процессов, как будто все приложения линейные и не паралельные (всегда вспоминаю оного: https://github.com/tuvistavie/elixir-temp/pull/3/files ).

Alexey
24.01.2018
14:20:54
словарь процесса?

Dmitry
24.01.2018
14:21:09
Не, глобальный процесс.

Dmitry
24.01.2018
14:21:50
@bolshakov_av : GenServer.start_link(Temp.Tracker, nil, name: TempTracker)

Alexey
24.01.2018
14:21:54
ну мне вот говорили, что рубисты пишут по-рубишному на эликсире. плохо получается, типа

@bolshakov_av : GenServer.start_link(Temp.Tracker, nil, name: TempTracker)
эмм. генсервер запускает еще генсервер?

Dmitry
24.01.2018
14:23:53
Нет, функция запускает глобальный вебсервер

Что делает невозможным использовать библиотеку из двух процессов.

Т.е. до этого изменения - библиотека так работала.

https://github.com/tuvistavie/elixir-temp/blob/63a76afcbd798d3ba0c01fd889e02e8720bfac00/lib/temp.ex#L8-L13

Вот так выглядил код до изменений, соответственно можно было делать track темпфайла только из одного Erlang/Elixir процесса.

Marsel
24.01.2018
14:28:25
MrFlorius
24.01.2018
14:28:54
Dmitry
24.01.2018
14:28:55
*глобальный == именной, в смысле.

Marsel
24.01.2018
14:29:07
а что за книга?

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