
Anatoliy Kovalchuk
27.03.2018
14:34:36
может быть, но это будет решение частного случая того поведения который нужен комуто.

Vladimir
27.03.2018
14:37:57
Rescue не поможет от падения ноды

Anatoliy Kovalchuk
27.03.2018
14:39:40
> Ага, допустим что выполнение задачи завершилось неудачей и даже привело к падению ноды
всегда есть возможность обработать неудачное завершении задачи не доводя до падения ноды

Alex
27.03.2018
14:39:57

Google

Vladimir
27.03.2018
14:52:24
> Anatoliy Kovalchuk:
> всегда есть возможность обработать неудачное завершении задачи не доводя до падения ноды
Нет конечно. Ошибка в nif-е и всё.

Alex
27.03.2018
14:56:33

Anatoliy Kovalchuk
27.03.2018
14:58:40
идеальных решений не бывает, если есть приложение которое постоянно падает виртуальная машина от segfault то хранить что-то ценное в памяти не стоит

Alex
27.03.2018
14:59:16
ничего не стоит хранить в памяти

Anatoliy Kovalchuk
27.03.2018
15:18:38
действительно, PHP forever!

Alex
27.03.2018
15:41:16
Не настолько уж, но в этом что-то есть.
Стейт в памяти препятствует горизонтальному масштабированию и отказоустойчивости.
Какие-то кэши можно и нужно держать, но даже с ними уже возникают проблемы

Dmitry
27.03.2018
16:08:35
Кто нибудь в brunch подключал react?

Vladimir
27.03.2018
16:15:42
я подключал
там вроде в официальных примерах всё просто

Evgeny
28.03.2018
08:52:30
Короче вот мое жалкое поделие AVL-деревца.
Английский корявый, доков нет. Короче, говнецо начинающего эликсириста, но может кому пригодится:
https://github.com/japplegame/avl_tree

Vladimir
28.03.2018
08:54:52
чот неправильное позиционирование репы)
лучше писать, мол, вот реализация AVL-дерева, опенсорс MIT-лицензия (или BSD какая-нить), можно расширять при необходимости, пулл реквесты приветствуются.

Google

Vladimir
28.03.2018
08:55:47
А так звучит как будто предложение, мол, кто гурман, вот тут можно навернуть говнеца =)

Evgeny
28.03.2018
08:57:04
Я стесняюсь

Vladimir
28.03.2018
08:57:57
не надо стесняться! все так делают! :)

Evgeny
28.03.2018
09:00:56
Вот реализация крутого бинарного дерева поиска.
Самий мощний риализация во всем интернете и гитхабе в частности.
Доки не нужны, можно расширять и сужать при необходимости и без таковой,
Массачусетусецкастая лицезия или как там ее, в общем что хочу то и ворочу.

Dmitry
28.03.2018
09:03:23
Может стоит по скорости с gb_trees сравнить?

Evgeny
28.03.2018
09:04:04
ну оно сливает в семь раз обычному MapSet

Vladimir
28.03.2018
09:04:13
добавляем блокчейн. делаем ICO, и сваливаем с деньгами в Аргентину

Evgeny
28.03.2018
09:04:34
правда на числах, на туплах разница в производительности сильно падает
а разве gb_trees позволяет кастомную функцию сравнения? Она, по-моему и есть источник главных тормозов
Надо лицуху сменить на еще более открытую, public domain, чтобы даже копирайты не нужны были

Александр
28.03.2018
09:07:06

Evgeny
28.03.2018
09:07:27
ага я читал
даже откопал доку по этим GB Trees этого профессора, там как-то запутано и сложно все - забил
для меня, главная фишка - кастомная функция сравнения, небольшая просадка по производительности ваще не волнует

Александр
28.03.2018
09:13:32
а с этим парнишкой бенчмаркал
https://gist.github.com/JohnAZoidberg/87dd44c1281ffb654ff64464f9cc85ab
?
поймал себя на мысли что не понимаю что тут происходит
http://joxi.ru/8AnzBGOUq3KlMA?d=1
(((
аааа

Google

Александр
28.03.2018
09:16:14
=)
теперь понял

Evgeny
28.03.2018
09:16:30
большое вращение влево видимо

Aldar
28.03.2018
09:17:04
Матчится сначала структура потом возвращается другая)

Александр
28.03.2018
09:17:12
дада
я вначале подумал что это одно действие
и сильно озадачился что за магический синтаксис

Dmitry
28.03.2018
09:17:31
Я чёт не понял, зачем нужно если есть gb_set
В коробке из под OTP

Evgeny
28.03.2018
09:17:49
повторяю КАСТОМНАЯ ФУНКЦИЯ СРАВНЕНИЯ
иначе есть MapSet и просто Map

Dmitry
28.03.2018
09:18:14
И зачем она нужна?

Evgeny
28.03.2018
09:18:44
или для сложного поиска

Dmitry
28.03.2018
09:19:41
Всю жизнь делал кастомные порядок элементов за счёт отображения данных на первый элемент тупла в gb_set
Ну, наверное тебе виднее

Evgeny
28.03.2018
09:20:02
не всегда это удобно
сравнивается все равно по внутренним правилам
и накой gb_set, если есть Map?

Dmitry
28.03.2018
09:21:37
set это set

Google

Dmitry
28.03.2018
09:21:44
А map - это map
Так что вопрос странный

Evgeny
28.03.2018
09:22:14
Ну пусть будет MapSet
Или MapSet не гарантирует порядка (хотя судя по всему по-факту сортирует)?
у меня просто замороченное сравнение, не хочу городить сложные отображения, проще функцию накидать

Dmitry
28.03.2018
09:25:27
Map set - это hash set
А gb_set - это binary tree set
Какая разница в них - ну наверное в универе изучают

Evgeny
28.03.2018
09:26:33
чем hash-таблица отличается от бинарного дерева, я знаю

Dmitry
28.03.2018
09:26:35
В тех программах, которые пишу я обычно это не важно

Evgeny
28.03.2018
09:27:30
hash set требует чтобы элементы поддерживали вычисление хеша и операцию ==
а бинарное дерево требует только операцию <
ну и хеш-таблица никакого порядка не гарантирует, а бинарное дерево гарантирует
Короче, кому надо - используйте, а кому не надо - тому не надо. :)

Aldar
28.03.2018
09:30:27
Наверняка внутри ets хеш таблица, или дерево
Или и то и другое

Dmitry
28.03.2018
09:32:59
И возможно на c++

Evgeny
28.03.2018
09:33:08
а эти ваши gb_set и gb_tree позволяют хотя бы в обратном порядке элементы листать?

Dmitry
28.03.2018
09:33:23
Хз, ну посмотри

Evgeny
28.03.2018
09:33:48
и как написать отображение для обратного порядка, например, строк?
строки, которые нужно отсортировать в порядке убывания. Или туплы из пары строк, в которых первый элемент в порядке убывания, а второй в порядке возрастания?

Google

Evgeny
28.03.2018
09:35:56
тут-то и пригодится кастомная функция сравнения

Dmitry
28.03.2018
09:39:26
Да, вот только в таких случаях обычно используют hash set

Александр
28.03.2018
09:40:07
avl деревья же используются для поиска элементов, причём тут сортировки?
получи список элементов из него (или храни отдельно) и сортируй как душе угодно

Evgeny
28.03.2018
10:00:02

Dmitry
28.03.2018
10:00:23
Так сортируют для того, чтобы быстрее искать
Зачем ты вообще сортируешь?)

Evgeny
28.03.2018
10:01:11

Александр
28.03.2018
10:39:04

Dmitry
28.03.2018
11:16:20
Есть ets, ordered_set.
Вопрос в том, насколько быстрее сразу сделать ключи в правильном сортируемом формате по сравнению с тем, чтобы использовать кастомную функцию?
Все случаи, что я встречал - обычно сделать ключ таким(привести к такому), чтобы нативная Erlang сортировка работала - вполне достаточно.

Taras ?
28.03.2018
11:49:48

Evgeny
28.03.2018
12:26:37
а куда положено скидывать файло которое нужно будет в рантайме и как узнать полный путь к этому файлу в рантайме же?
надыбал :code.priv_dir но он дает путь в папке _build

Katya
28.03.2018
12:32:06
при компиляции содержимое папки priv копируется вроде и вставляется рядом с скомпилированными файлами, поэтому можно использовать эту функцию, а путь джойнить
Path.join(:code.priv_dir(:app_name), "filename")

Evgeny
28.03.2018
12:33:08
а точно. символическая ссылка создается
про джойн я знаю
спасибо