These are chat archives for dev-ua/erlang

12th
Nov 2015
Ruslan Cheshko
@mrChex
Nov 12 2015 07:56
А что вы используете для работы с json? jiffy, jsx или что-то другое?
Colin Densem
@colindensem
Nov 12 2015 09:35
I was looking at erlang a few years back for web, large travel site. Elixir is making it easier to access 'erlang' bonuses as my grey cells slow down. HTH.
Serhii Kostiushkin
@kostyushkin
Nov 12 2015 09:40
@mrChex jsx - он самый медленный из json парсеров, зато все умеет
Ruslan Cheshko
@mrChex
Nov 12 2015 09:44
А что от него нужно кроме encode/decode в map? Учитывая что запрос начинается в decode, а заканчивается encode? У меня просто опыт только с jiffy, а вокруг все jsx используют как стандарт
Valerii Vasilkov
@stalkermn
Nov 12 2015 10:41
jsx удобен тем, что возвращает proplists структуру, без заворачивания объектов в дополнительный tuple.
еще один, на чистом erl
В Readme добавлены результаты бенчей нескольких популярных парсеров
Ruslan Cheshko
@mrChex
Nov 12 2015 10:51
О, круто, jiffy на втором месте :) спасибо
Serhii Kostiushkin
@kostyushkin
Nov 12 2015 11:31
jiffy на нифе это значит что ты можешь резко получить не работающую ноду без каких либо объяснений
Ruslan Cheshko
@mrChex
Nov 12 2015 11:35
Но пока это единственное что на нифе я могу надеятся что быстро пойму причину, ведь encode/decode при большой частоте запросов будет сильно ощутим.
Valerii Vasilkov
@stalkermn
Nov 12 2015 11:35
jiffy показал себя в бою достаточно неплохо по скорости и стабильности. jsonx (типа самый быстрый) крэшил виртуальную машину.
Ruslan Cheshko
@mrChex
Nov 12 2015 11:35
  • подумал я и пересмотрел бенчи. Пойду уберу его в пользу jsone
Valerii Vasilkov
@stalkermn
Nov 12 2015 11:35
:)
Андрей Листочкин (Andrey Listochkin)
@listochkin
Nov 12 2015 11:35
@fisher чтобы появилась активность, нужно чтобы кто-то - в первую очередь ты сам - писал
Serhii Kostiushkin
@kostyushkin
Nov 12 2015 11:37
@stalkermn jiffy - были случаи тоже крешил
Igor Prots
@Prots
Nov 12 2015 11:41
Думаю попробовтаь jiffy, нужна хорошая производительность.
Ruslan Cheshko
@mrChex
Nov 12 2015 11:44

о. У меня есть на самом деле важный мне вопрос. Есть приложение на эрланге (ядро на терминале (такой большой ящик с сенсорным стеклом)), я его упаковываю в deb пакет вот так:

env/master.* etc/ecs/
deps/*/ebin/* usr/lib/ecs/ebin/
deps/*/priv/* usr/lib/ecs/priv/
ebin/* usr/lib/ecs/ebin/

т.е. все beam из депсов и мои в одну папочку. Руководствуясь логикой что название модулей в пределах приложения уникальны, а значит и с именами файлов не должно быть конфликтов. Единственное место для конфликтов - папка priv в которой агрегируется все из модулей (но там только сошник скомпиленного jiffy). Вопрос: я делаю все правильно?
PS. Решение работает, но хочется понимать, не фигню ли я делаю

Andy
@m-2k
Nov 12 2015 11:46
github.com/synrc/mad пакует во что хочешь
Serhii Kostiushkin
@kostyushkin
Nov 12 2015 13:04
Эта штука, как и все что делает ее автор, умеет так много, что я не удевлюсь если она и яичницу по утрам жарит
А как известно штуки которые умеют все - на самом деле не умеют ничего
имхо
Andy
@m-2k
Nov 12 2015 13:42
претензии личного характера, уверен, надо адресовывать прямо в приват обидчику :smile: а делать выводы про штуки о которых только слышал - каждый школьник с двача может умеет практикует
Serhii Kostiushkin
@kostyushkin
Nov 12 2015 13:43
@m-2k У меня нет никаких притензий, я щупал поделки автора, ничего хорошего не увидел, одни воздушные замки
@m-2k Конкретно mad не щупал, но думаю что такое же как и все остальное
Andy
@m-2k
Nov 12 2015 13:47
зачем ты пишешь одину и ту же мысль второй раз но другими словами? :smile:
я так же умею: если так припекает с автора выскажи ему это в лицо
Serhii Kostiushkin
@kostyushkin
Nov 12 2015 13:49
@m-2k Я изъясняюсь о своем мнении, и оно не основано на обиде
Это прсото мое субъективное мнение
Andy
@m-2k
Nov 12 2015 13:50
ясн
Ruslan Cheshko
@mrChex
Nov 12 2015 13:51
но кажется речь не о личных обидах, а подходе. Вполне логично на основе убеждения, что вещи должны быть простыми и хорошо делать именно то что от них хотят, деалется вывод о непригодности решения.
Serhii Kostiushkin
@kostyushkin
Nov 12 2015 13:51
@mrChex В точку
Andy
@m-2k
Nov 12 2015 13:52
если конкретно про mad то под всё имел ввиду всё что нужно для выкатывания и сборки проекта
там пару сотен строк и все на эрланге, о комбайнах никаких разговоров и речи быть не может
@kostyushkin на счет поделок. что юзал, чем не понравилось и что юзаешь вместо этого? (вопрос без троллинга)
если есть время - можно развернуто
Serhii Kostiushkin
@kostyushkin
Nov 12 2015 13:55
@m-2k Было много рекламы n20, я пробовал, в последний раз года полтора назад, не понял зачем оно нужно если все то же самое можно сделать на голом cowboy-е и собиратся будет
Развернуто - долго, для этого нужно живое общение
Andy
@m-2k
Nov 12 2015 13:56
давай аудиоконфу %банём )
Serhii Kostiushkin
@kostyushkin
Nov 12 2015 13:56
Конфу можно, а вот мат если не сложно лучше убрать
Ruslan Cheshko
@mrChex
Nov 12 2015 13:57
@kostyushkin я кажется неосилил релизы ребара и начал собирать релизные сборки руками. В примере все так же как и я делают (за исключением кучи непонятной лапшы вместо dpkg-build) только выкладывают релиз, а я вытягиваю beam из всех депсов. в лоб
Serhii Kostiushkin
@kostyushkin
Nov 12 2015 13:58
Релизы с relx весьма просты
Примеры можно посмотреть в examples того же ковбоя
Ruslan Cheshko
@mrChex
Nov 12 2015 13:59
я правильно понимаю что в итоге получу папочку (грубо говоря) без исходников, ридми и всего ненужного, что можно рассылать клиентам?
Serhii Kostiushkin
@kostyushkin
Nov 12 2015 14:00
Да
Ruslan Cheshko
@mrChex
Nov 12 2015 14:07

о. Спасибо. А по поводу конфы, frontend-ua как-то делали в хэнгауте и на ютюбе выкладывали. Вроде даже больше одного раза :) можно набросать список примерных тем которые интересуют. Про релизы, лучшие практики, тулинг и подходы я бы послушал и может что-то сказал.

Например, я каждый раз меняя код (при разработке) компилю/перезапускаю приложение. И кажется я не прав.

Andy
@m-2k
Nov 12 2015 14:15
оно же само может компиляться и хот релоад делать
не знаю в том ли я хэнгауте был но там народ приуныл когда в ограничение по иплу в конфе уперлись
ты на полном серьёзе про компил/рестарт или это такой толстый троллинг?
Ruslan Cheshko
@mrChex
Nov 12 2015 14:34
на полном. И такое делают многие. Я просто догадываюсь что можно иначе как-то, но меня пока не парит, нужно в других вещах разобраться. У меня много таких историй про знакомство с эрлангом в режиме "пиши продакшен там разберешься, теперь ты не python/js, а erlang. все, вперед. Дедлайн 2 месяца" ))
Andy
@m-2k
Nov 12 2015 14:37
а ты знаешь толк в извращениях :smile:
Ruslan Cheshko
@mrChex
Nov 12 2015 14:42
(давняя история) я три дня не мог понять почему у меня gen_server в супервизоре падает. Руками запускаешь - все ок, в супервизоре падает сразу после запуска просто так. terminated. через три для я понял что верхним уровнем должен быть application. Как-то неочевидно было (learn you some erlang недочитал. Обиделся на русский перевод который внезпно оборвался)
Andy
@m-2k
Nov 12 2015 14:43
есть такое )
Ruslan Cheshko
@mrChex
Nov 12 2015 15:50
@m-2k раз уж зашла речь про active, после его фразы Watches established что-то должно происходить при изменении? Потому что там написанно "That's it!". Кажется после дэтс ит, кроме установки inotify-tools, нужно еще что-то сделать неочевидное. Почитать sync, erlfsmon и всем на чем оно основанно пока не найду в чем дело? Это вот еще одно эрланговое что пугает. Я нигде больше не встречал такой неочевидности
этот бери
fs должен вытянуть
inotify-tools ты как я понял уже поставил
{active, ".*", {git, "git://github.com/synrc/active", {tag,"1.9"}}}
Ruslan Cheshko
@mrChex
Nov 12 2015 16:03
о. Тут лучше. И с документацией лучше. Завелось, реагирует. Но с особенностями. Комментирую в супервизоре запуск клиента в вебсокет, он почему-то не дисконектит, меняю его (логин/пароль) - рекконекта нет. Нужно разобраться, буду :) спасибо. Хот релоад я так понимаю должен выйти как у react на js с сохранением стейта
Andy
@m-2k
Nov 12 2015 16:04
да