Size: a a a

Saint P Ruby Community

2020 April 03

w

wi11son in Saint P Ruby Community
хранить эвенты в бесконечности мы не можем, но мы можем сохранять правила генерации
источник

w

wi11son in Saint P Ruby Community
это как если бы мы хотели бы узнать координаты по оси Y в промежутках X при этом имея функцию
источник

w

wi11son in Saint P Ruby Community
при этом этих функций может быть много
источник

EM

Eugene Maslenkov in Saint P Ruby Community
только у нас есть 1000 функций и нам нужно выбрать подходящие 👼
источник

w

wi11son in Saint P Ruby Community
именно, какую структуру данных в таком случае стоит заюзать?
источник

w

wi11son in Saint P Ruby Community
все же функции — штука достаточно многогранная, а правил рекурентности событий не так уж и много
источник

w

wi11son in Saint P Ruby Community
@grach а чего ты нам не расскажешь про интерпретатор clojure, написанный на ruby?
источник

v

vveare138 in Saint P Ruby Community
я уже второй раз об этом слышу за этот день
источник

w

wi11son in Saint P Ruby Community
первый раз видимо было на fprog'e
источник

v

vveare138 in Saint P Ruby Community
ага
источник

w

wi11son in Saint P Ruby Community
@dside_ru ты ведь мне чего-то писал на тему вопроса выше?
источник

AD

Anton Davydov in Saint P Ruby Community
А можно подробнее?
источник

w

wi11son in Saint P Ruby Community
+ (я бы рассказал про свой интерпретатор Clojure написанный на Ruby)
источник

w

wi11son in Saint P Ruby Community
Не, назвается вот так.
https://github.com/cawcaw/goodheart
Очень сырой, но уже есть кое где в проде о_0
Помогает шарить функции валидации между беком на Ruby и фронтом на. CLJS

Пример: https://github.com/cawcaw/goodheart/blob/master/spec/integration/validation.clj
источник

PP

Pavel Peganov in Saint P Ruby Community
wi11son
@dside_ru ты ведь мне чего-то писал на тему вопроса выше?
Ну, первое что пришло в голову это ленивая последовательность из каждого правила, которые хранятся в sorted-set'е по дате события первого ("открытого") элемента – и на его базе делается одна большая ленивая последовательность, которая каждый шаг достаёт элемент с минимальной датой и соответствующую последовательность проматывает на элемент вперёд, ставя её на соответствующее новое место в sorted-set'е.

Так, идя по полученной последовательности вперёд, будешь получать события по всем правилам в хронологическом порядке.

Будет ли это масштабироваться хорошо под конкретную задачу – вопрос открытый. Зависит от числа правил, его роста, разнообразия дат и их удалённости.
По идее, состояние последовательности на заданный день легко кэшировать, чтобы не "мотать" каждый раз с начала, особенно если правила заданы рекуррентно (т. е. у ленивой послед-ти нет состояния кроме первого элемента – хотя всё равно нужно знать разновидность правила, что тоже состояние...).
источник

PP

Pavel Peganov in Saint P Ruby Community
Похоже на искомое?
источник

DG

Dmitry Grach in Saint P Ruby Community
vveare138
я уже второй раз об этом слышу за этот день
Clojure everywhere!
источник

w

wi11son in Saint P Ruby Community
Pavel Peganov
Похоже на искомое?
не совсем, ты говоришь про возрастающие последовательности, а я говорю про получение значений этих функций на любых отрезках
источник

m

max in Saint P Ruby Community
для того что бы получить значение функции на отрезке надо эту функцию на этом отрезке вызвать - иначе физически не возможно
либо это не функция
источник

A

Arkady in Saint P Ruby Community
wi11son
именно, какую структуру данных в таком случае стоит заюзать?
https://en.wikipedia.org/wiki/Cron#Overview а что если пойти по пути крона? описание повторяющихся событий
источник