@proelixir

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

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

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

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

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 сортировка работала - вполне достаточно.

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
а точно. символическая ссылка создается

про джойн я знаю

спасибо

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