@proelixir

Страница 429 из 1045
Max
17.03.2017
09:30:15
откуда там однообразность и консистентность?

Александр
17.03.2017
09:30:19
нет

Aldar
17.03.2017
09:30:31
у эрланга норм синтаксис, просто другой, поэтому никому не нравится

Max
17.03.2017
09:30:32
самые однообразные и консистентные — это перл и хаскель

Google
abc
17.03.2017
09:30:52
парни. можно отвлеку ? корректно ли Prometheus и ELK сравнивать ? Или кто пробовал оба решения для логов ?

Александр
17.03.2017
09:30:55
там они решили самую главную проблему языков програмирования (в Ruby), там весь код читается сверху вниз и слева направо

в перле почти весь код читался справа налево

потому он был непрост для поддержки

ELK вообще о другом

abc
17.03.2017
09:32:10
вот и я подумал что-то не так )

Александр
17.03.2017
09:32:46
думаю что решение будет отталкиваться от железа

у меня была куча машин на DO

и мне там тоже пришлось логи аггрегировать

Alexander
17.03.2017
09:33:09
первое для мониторинга, второе - логокосилка

Александр
17.03.2017
09:33:30
так вот logstash и остальные жрут много памяти

Google
Александр
17.03.2017
09:33:37
мне пришлось юзать https://github.com/influxdata/telegraf

и делать для него свой плагин

Alexander
17.03.2017
09:34:03
я проникся графитом

и к нему уже графану

прямо эластик сосет сильно тут

Александр
17.03.2017
09:34:28
ну с инфлюкса в графану тоже хорошо выводиться

Alexander
17.03.2017
09:34:46
да, но я что-то не подружил инфлюкс с логами

графит же с statsd на ура

Александр
17.03.2017
09:36:53
а логи в эластике при наличии достаточного количества ресурсов очень приятно анализировать

и на kibana почему-то люди ругаются, а я даже нетехнарей научил отчёты строить

надо им новый отчёт? засунул данные в ES и они сами их анализируют

Alexander
17.03.2017
10:51:19
Кибана и эластик в конкатинацию не умеют

Alexey
17.03.2017
11:48:10
да ёбнутый синтаксис, что уж там
да ерунда это все. меня вот только одно выбешивает. можно написать в коде SomeModule.some_function, с учетом того, что SomeModule не существует. и при этом все чудесно запустится и будет работать, пока на это место не наступит

Alexey
17.03.2017
11:50:35
ну вот как бы да. огорчает. особенно напишешь alias чтобы вместо Bla.Bla.Bla.SomeModule было Module и его забудешь добавить или удалишь по ошибке.

Google
Max
17.03.2017
11:50:45
кто бы мог подумать, что будут писать несуществующий модуль?

Alexey
17.03.2017
11:51:53
ну. вот сложно. ведь в виртуальной машине этот модуль может существовать и быть загружен

и перезагружен на ходу

побочные эффекты от динамики и других доп возможностей. типа как в линуксе можно сделать rm / делаешь - ну значит так надо )

Mikhail
17.03.2017
11:53:21
спасёт только диалайзер, думаю

Alexey
17.03.2017
11:53:28
вот это надо проверить

Alexander
17.03.2017
11:57:08
warning: function SomeModule.some_func/1 is undefined (module SomeModule is not available)

это на mix compile

так что норм

Alexander
17.03.2017
12:00:34
это на mix compile
В чате самозванец

Я есть оригинальный Александр :)

Alexander
17.03.2017
12:00:53
я бэкап

Alexander
17.03.2017
12:00:55
всё норм

Alexey
17.03.2017
12:04:14
так что норм
да. и на iex -S mix run тоже варнинг есть. так что вопрос снят. эликсир фарева

Alexander
17.03.2017
12:04:39
Не все так радужно

Mix.env если в релиз скомпилить, то узнаешь из крэшдампа потом

Dmitry
17.03.2017
12:09:01
Distillery не соберёт

Так что все норм

А для mix.env есть :system tuple про который внезапно никто не знает

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

Google
shadowjack
17.03.2017
12:11:46
Это кстати вообще недопустимо для компилируемых языков
Почему это? Я думаю норм. Учитывая что имя модуля+функции это просто атом.

Alexey
17.03.2017
12:13:03
это похоже на то, как все соберется в си, с указанием extern функции. а ее реально нет.

shadowjack
17.03.2017
12:13:15
я бэкап
А у вас фейловер как сделан? Репликация мастер-мастер?

Alexander
17.03.2017
12:13:48
независимые, гарантируется eventual consistency

лет через 200

Alexander
17.03.2017
12:14:21
Distillery не соберёт
Я собрал вот пару минут назад

Даже не пернуло

Dmitry
17.03.2017
12:15:10
Всё правильно, я перепутал

Admin
ERROR: S client not available

Dmitry
17.03.2017
12:15:18
Упадёт в проде

Кстати может упасть ещё раньше, если юзаешь нативные эрланг либы, которые не подтянутся в релиз

Пацаны, пишу статью "Почему ваша API либа - говно". Приветствуются всё говно, которые вы когда-либо находили в API либах

Укажу в соавторы как всегда)

Основные претензии на сегодняшний момент: - Не продакшн реди - Нельзя сделать прокси

- Нельзя использовать параллельно несколько пользователей/токенов, потому что токен указывается в конфиге

- Одна единственная ошибка "MySuperLib.Error" которую нельзя никак запаттернматчить

Alexander
17.03.2017
12:19:55
Укажу в соавторы как всегда)
Меня указывай сразу. Я тут наплакал на соавторство /)

Dmitry
17.03.2017
12:19:57
- Впринципе подход либо :ok|:error везде либо raise везде

Самое классное - это когда либа raise и одна ошибка на все случаи жизни

Alexey
17.03.2017
12:21:19
идем на https://github.com/h4cc/awesome-elixir берем к примеру либу для телеграм https://github.com/Yawolf/yocingo и там читаем: The libary is completed!! Yay! And it is accesible in the Hex repository! ^_^ и в то же время: This is my first Elixir program, so please, don't be hard with me.... И вот блин.... ну вообще ниочем такие либы.

Google
Ivan
17.03.2017
12:21:20
Пацаны, пишу статью "Почему ваша API либа - говно". Приветствуются всё говно, которые вы когда-либо находили в API либах
бля, я помню один случай, но не api либа, и не elixir, но это был в свое время самый популярный пакет на реакте - react-social вроде, и я долго не мог понять, почему иконка фасебука не работает, пока в сорцах не увидел захардкоженный app_id фэйсубка автора

shadowjack
17.03.2017
12:21:28
- Впринципе подход либо :ok|:error везде либо raise везде
Нет. Ну рекомендации такие что ok/error если вероятность error довольно большая. А raise когда пиздец все сломалось.

Dmitry
17.03.2017
12:22:37
И приходится писать что-то типо elixir rescue MySuperLib.Error e-> if e.message.starts_with "Bad connection" do.... if e.message.starts_with "Bad request" do

У меня просто пригорел пукан

Вместо спокойного MySuperLib.BadConnectionError

Жалко им пару defmodule написать

shadowjack
17.03.2017
12:23:30
Max
17.03.2017
12:23:55
напишите свою лучше, зачем засовывать?

насильно же не заставляют пользоваться, опенсорц

shadowjack
17.03.2017
12:24:26
Ну форкнуть у пулл реквест

Alexey
17.03.2017
12:24:58
ну. вот в Poison.Parser.parse! и parse. в одном случае raise в другом :ok/:error. как хочешь, так и пиши

Alexander
17.03.2017
12:25:09
Dmitry
17.03.2017
12:25:33
Я хотел. Но изза того что ошибка одна на всё, он СРАЗУ на неё проверяет, а потом если нету - парсит ответ

Alexey
17.03.2017
12:25:36
пишу статью "почему ваша статья/доклад - говно"....

Dmitry
17.03.2017
12:25:45
Соответственно надо переписать всю либу нахер

Или манкипатчить throw и catch что превращает код в ещё большее говно

Alexander
17.03.2017
12:28:47
Как раз не понравилось что прямо джава. Логика на эксепшенах

Удивительно, но плаг - охуенен

У меня просто пригорел пукан
Ох как вы меня говном тут поливали в октябре

Я ведь все помню

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