@proelixir

Страница 821 из 1045
Taras ?
10.12.2017
23:11:56
о, дошло «V:1/binary, ValuesRest/binary» = A.

? это магия - часто можно часами долбаться в глаза и мосг, а стоит написать в чат вопрос - сразу находится где завтык)

Alexey
10.12.2017
23:18:25
Правильная формулировка вопроса решает его на половину)

Alexander
10.12.2017
23:40:15
как же я скорблю по .dev доменам..

Google
Константин
11.12.2017
01:14:24
.local теперь в тренде

Alexander
11.12.2017
01:37:54
ага, на них и переехал

Evgeny
11.12.2017
17:04:55
к фениксу реально прикрутить второй ковбой без шаманских плясок?

Azat
11.12.2017
17:13:35
очень может быть: https://github.com/elixir-plug/plug/issues/599

Yuri
11.12.2017
20:42:20
https://github.com/phoenixframework/phoenix/pull/2621 очень даже просто уже

Alexander
11.12.2017
22:32:50
https://github.com/phoenixframework/phoenix/pull/2621 очень даже просто уже
я почитал там комменты, что-то не понял супер пользы кроме http2

Yuri
11.12.2017
22:34:44
к фениксу реально прикрутить второй ковбой без шаманских плясок?
я ответил на вопрос выше я так - стал пошустрее, http2 и unix domain socket support

Evgeny
12.12.2017
07:21:33
На самом деле вот это меня беспокоит ===> Compiling cowlib src/cow_multipart.erl:392: Warning: call to crypto:rand_bytes/1 will fail, since it was removed in 20.0; use crypto:strong_rand_bytes/1

Типа сделать даунгрейд на Erlang/OTP 19?

Alexey
12.12.2017
07:23:05
либо сделалть ПР

Evgeny
12.12.2017
07:23:34
я нуль в эрланге и почти нуль в эликсире

хотя тут похоже весьма простой ПР

там такая древняя версия cowlib, что даже не знаю в какую ветку ПР делать

Google
Alexey
12.12.2017
07:35:08
а это зависимость какой библиотеки?

может там просто в mix нужно версию сменить

Evgeny
12.12.2017
07:35:26
вероятно cowboy

я не знаю какой аналог mix в эрланге, там же как-то по другому зависимости указываются

я просто исправил код у себя в папке deps

говно, но работает пока

cowlib 1.0.2 и больше в этой ветке версий нет. 4 года назад прекратили разработку

так что проще откатить Erlang/OTP до 19 и дождаться впиливания cowboy 2 в phoenix

Кто-нибудь разбирается в эликсировском Gettext?

mix gettext.extract —merge нихрена не мерджит

то бишь не добавляет из файлов *.pot ручные запись в *.po файлы

а вот mix gettext.merge priv/gettex вполне добавляет

Slava
12.12.2017
14:02:00
назрел почти что философский вопрос: есть ли смысл брать эликсир/эрланг, если знаю что будут узкие места и расчитывать на то, чтобы потом вынести эти узкие места в nif'ы? или лучше не мучаться и брать какой-то go сразу и мучаться уже с ним в целом, зато все однородно будет?

Scas
12.12.2017
14:04:31
если есть профит от многих ядер то есть смысл.

Alexey
12.12.2017
14:04:38
так возьми ерланг для клея. и это бгмерзкий го для строго конкретных вещей, скорости которых тебе в ерланге вдруг не хватит

Alexey
12.12.2017
14:05:04
просто, как я понял, большие весчи на го писать - это адпздц

так порты

Marat
12.12.2017
14:05:12
если есть профит от многих ядер то есть смысл.
Так го, тоже имеет профит от многоядерности

Scas
12.12.2017
14:05:32
не так прозрачно как Е-г

Google
Slava
12.12.2017
14:05:52
погодите, это не срач эрланг вс го, я вас прошу

Alexey
12.12.2017
14:06:07
ну. по личному опыту рефакторинга большого проекта - всетаки это происходит достаточно реально

большого - это порядка 3500 - 5500 строк на эликсире

где-то за неделю разобрал монолит с амбреллой на отдельные части

Scas
12.12.2017
14:06:56
nif нормально если задачки там числодробилки простые - а так порты предпочтительнее - планировщику легче

Alexey
12.12.2017
14:07:00
сколько бы это было в строках на го - уверен, что минимум в 1.5 раза больше

а по времени рефакторинга - не могу сказать

Alexey
12.12.2017
14:07:52
говорю именно за эликсир, а не ерланг. потому что разница всетаки есть. именование модулей. их иерархия. алиасы и всё такое

Slava
12.12.2017
14:08:21
но я так понимаю, что нифы - это только на си или расте, верно? на го не получится (на нем проще было бы напедалить небольшой кусок кода)?

Alexey
12.12.2017
14:08:47
да тут кто-то про c-node на го вроде писал

или я путаю чего-то

Alexey
12.12.2017
14:09:28
в общем, вариантов выделить из/в ерланг вм быстрый нативный код - несколько

вот есть даже почитать

https://spin.atomicobject.com/2015/03/16/elixir-native-interoperability-ports-vs-nifs/

Slava
12.12.2017
14:24:48
грустно как-то это все, и звучит не очень надежно. и на го педалить не очень хочется. муки выбора, в общем

Alexey
12.12.2017
14:25:32
я хз. может на го и не придется. ерланг достаточно быстр в определенных вещах

я даже вот пробую временами натив компиляцию через HiPE, но, как правило, прироста не дает, а скорее наоборот

Slava
12.12.2017
14:29:02
я уже писал чуть выше, если кто за advent of code 2017 следит, там таска 5-го дня выполняется примерно секунд 10 на эликсире. 10 это слишком много. на го до секунды. даже на рубях секунд 6. ну и я ради интереса запустил 20 потоков одних и тех же вычислений. го все равно все очень быстро посчитал, за считаные мгновения. руби (jruby пробовал, чтобы параллелизм) загудел так, что мне аж страшно за компьютер стало. эликсир очень сильно поплыл, вместо 10 секунд каждый поток секунд по 40 считал. и вот получается, что эликсир и отп мне очень нравятся, но го быстрее и по этому параметру куда лучше подходит для нужной мне задачи

Alexey
12.12.2017
14:29:26
что за задача?

Google
Slava
12.12.2017
14:29:40
https://adventofcode.com/2017/day/5

а, или моя?

https://gist.github.com/sdzyba/bfe51770010e007b04a8bc50ce92dcd7

Alexey
12.12.2017
14:30:52
попробуй с HiPE собрать

Slava
12.12.2017
14:30:55
вот мое решение на эликсире

как-то можно запускать скрипт с hipe без mix'a?

Alexey
12.12.2017
14:32:43
задача - прыгать по индексам массива?

Admin
ERROR: S client not available

Slava
12.12.2017
14:33:33
прыгать в зависимости от значения по данному индексу, да



собственно, все что нужно знать по этому примеру ^

а, это не все, там еще в условии есть part 2, после которого все особенно замедлилось

Now, the jumps are even stranger: after each jump, if the offset was three or more, instead decrease it by 1. Otherwise, increase it by 1 as before.

Alexey
12.12.2017
14:35:41
уходя с ячейки, он всегда увеличивает значение?

Slava
12.12.2017
14:36:03
да

Alexey
12.12.2017
14:36:12
я бы тут, наверное, не массив, а мапу взял

Slava
12.12.2017
14:36:20
так у меня и мапа

Alexey
12.12.2017
14:36:47
а. точно. почему-то показалось, что список

а файло есть?

Slava
12.12.2017
14:36:55
с list или tuple, понятное дело, было бы совсем все плохо

Google
Evgeny
12.12.2017
14:38:29
мапа всяко сильно тормознее массива будет

Slava
12.12.2017
14:38:45
на вставку элемента? нет

Evgeny
12.12.2017
14:39:08
я про мутабельный массив, которого в эликсире и эрланге не бывает

я к тому почему го быстрее

Slava
12.12.2017
14:39:36
а, ну это да

Evgeny
12.12.2017
14:40:08
а если какой-нибудь ETS задействовать?

Eugene
12.12.2017
14:40:22
а если какой-нибудь ETS задействовать?
да, такая же идея возникла

Evgeny
12.12.2017
14:40:46
все таки мапы в эликсире тоже иммутабельные, персистентность помогает, но мутабельная мапа все равно быстрее

maier
12.12.2017
14:40:53
На реддит вроде тесты видел

Evgeny
12.12.2017
14:42:08
вполне возможно

Slava
12.12.2017
14:42:10
https://elixirforum.com/t/benchmarking-lookup-time-for-map-vs-ets/3575

видимо ты про это и да, медленнее

Evgeny
12.12.2017
14:42:25
оверхед на передачу данных

maier
12.12.2017
14:43:32
Да точно

Там читал

Evgeny
12.12.2017
14:43:38
в традиционных языках эта задача выполняется без аллокаций памяти

а тут на каждый чих аллокация

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