Fork me on GitHub
#clojure-russia
<
2017-06-26
>
misha08:06:13

нужно попробовать юай стейт на рулах написать, пока без https://github.com/CoNarrative/precept

misha08:06:34

а то они что-то не стесняются слова "фреймфорк"

mike_ananev08:06:59

@misha пока не удалось полезного сделать. хотя я с ней экспериментировал. мне нравится в ней 2 вещи: понятный аналитикам DSL и то что, она embeddable, т.е. не надо устанавливать

misha08:06:20

пока что на аналитиков пофиг, свои бы ласты перестали от ифочек склеиваться. Еще интересно посмотреть, насколько оно шустрое, для тех же мобилочек (в контексте "навалить правил на здоровую вьюху" хотя бы).

mike_ananev08:06:20

спроси у Тимоти Балдриджа

mike_ananev08:06:30

недавно переписывался с ним на эту тему

mike_ananev08:06:48

он усиленно читал про rule engine и Рете алгоритмы

mike_ananev08:06:05

хотел сделать что-то свое и типа крутое

mike_ananev08:06:25

может у него в доступных репах на гите что-то уже появилось

misha08:06:28

@mike1452 думаю, что навалить - непроблема, проблема начать в терминах правил и стейт машин думать. Вообще покурю еще немного и обязательно спрошу. Интересно, как оно вяжется со спекой и тем же датомиком/датаскриптом

Roman Liutikov08:06:11

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

misha08:06:22

потому что, например, датомик - типа замена ивентсорсингу, судя по презентации Рича: "ваши аналитики просили вас из лога генерить отчеты, потому что ваши бд - говно"

misha08:06:13

получается, что городить ивентсорсинг рядом с датомиком - глупо, лучше разобраться, как в полную силу датомиком пользоваться

misha08:06:59

то же самое наверное с правилами - где-то функционал наверняка пересекается со спекой и датомиком, и стоит разобраться прежде чем масло масляное писать

misha08:06:58

но тут же начинается "как быть, если хочется оффлайн мобильное приложение, где данные в датомик уходят раз в месяц", например

misha08:06:13

сложно всё harold

rmuslimov08:06:16

@roman01la А как тебе clara-rules? Показалось недостаточным, чтобы развивать дальше тему?

misha08:06:23

вообще, про клару есть пара ок докладов: https://www.youtube.com/watch?v=zs5Rueo42TA&amp;t=0s

Roman Liutikov08:06:42

@rmuslimov clara по ощущениям громоздкая, и как-то странно инициализация сессии через неймспейс

Roman Liutikov08:06:57

еще не понравилось, что во всех рул движках рулы — дата тайпы, в кларе это рекорды

rmuslimov09:06:02

Я не имел возможности разобраться к сожалению (точнее возможность всегда есть просто не было необходимости). На последнем докладе я был и мне показалась клара хорошей заменой еще более громоздкому решению на джаве

rmuslimov09:06:57

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

misha09:06:18

While Clojure Records or Java Beans are good for many needs, some use cases ask that Clara rules be written against arbitrary Clojure structures. Clara supports that with two features shown below:

Users may provide a function to determine the logical type of an incoming fact.
Users may use Clojure destructuring within a rule to easily access data in the rule’s constraints.

misha09:06:12

инициализация через неймспейс вроде ок, все правила свалил в нс отдельно да и всё.

mike_ananev09:06:56

@roman01la в кларе помимо рекордов можно использовать обычные мапы. у них есть примеры на эту тему. также я с авторами связывался, они мне присылали сниппеты как это делать

Roman Liutikov09:06:13

о, а можно ссылочку?

mike_ananev09:06:02

@roman01la Clara will use the fact-type-fn to determine what type a fact is for matching against conditions. The docs/examples can probably be improved in this regard but it is alluded to in the generated API docs at http://www.clara-rules.org/apidocs/0.13.0-RC4/clojure/clara.rules.html#var-mk-session Defrecord is just convenient for some people’s use-cases because it creates a type to match against out of the box when you use clojure’s type function as the fact-type-fn (which is the default)

mike_ananev09:06:23

это прям то, что автор написал

mike_ananev09:06:31

а вот сам пример, который он мне прислал, я где-то потерял

misha09:06:06

(mk-session 'example.rule :fact-type-fn :request-type)

{:request-type :get :url ""} ; Matches rules of type :get
{:request-type :put :url ""} ; Matches rules of type :put

mike_ananev09:06:18

можно спросить на канале клары. они отзывчивые чуваки

misha09:06:04

я так понял, что факт будет выглядеть ~так:

[:get (= ?url url)]  ;; взять урлы всех гетов

mike_ananev09:06:01

а в репл сие вставляется?

mike_ananev09:06:20

всеж repl driven development в кложуре - вещь!

misha09:06:38

ща добавлю депенденси, протещщу

mike_ananev09:06:19

@misha у тебя emacs или иное?

mike_ananev09:06:32

что в качестве ide?

misha09:06:44

курсив

misha09:06:55

(ns clara.tmp
  (:require
   [clara.rules :as clara]))

(clara/defrule foo
  [:get [{:keys [url]}] (= ?url url)]
  =>
  (println ?url))

(clara/defsession sesh
  'clara.tmp
  :fact-type-fn :request-type)

(-> sesh
  (clara/insert
    {:request-type :get :url "bar"}
    {:request-type :get :url "baz"}
    {:request-type :post :url "quux"})
  (clara/fire-rules))

;; => bar
;; => baz

misha09:06:51

с рекордами писанины меньше, потому что url сработает без вот этой вот деструктуризаци [{:keys [url]}]

mike_ananev09:06:18

разрабы клары говорили, что они на проде ее гоняют с несколькими тысячами правил в оперативе. что мол отклик милисекунды

misha09:06:35

в джаве? или в жс?

mike_ananev09:06:47

по-моему java

mike_ananev09:06:00

я про js не спрашивал

mike_ananev09:06:30

в общем если у вас кейсы будут по кларе - поделитесь плиз. я собираю инфу о ней, т.к. возможно втащу в один из проектов.

misha09:06:35

секунды - тоже милисекунды troll

misha09:06:10

что-то сессия-то не как сет себя ведет, правила-дубликаты не схлопываются в 1

mike_ananev09:06:19

@misha про датомик и event souring. Уже есть кейсы, что кто-то в РФ купил эту БД (datomic)? Они продают в РФ? какое качество консалтинга?

misha10:06:25

рф = россия?

misha10:06:39

думаю, что они продают в интернете, а не с учетом гос границ

mike_ananev10:06:53

блин, они нам влицо сказали, мы не хотим с вами делать бизнес. мы им описали кейс, они головой покивали, что датомик подойдет, только мы вам его не продадим. я думаю это все из-за нашего цвета. мы большие зеленые и в списках...

mike_ananev10:06:37

поэтому мне интересно, что продают ли они для тех, кто не в списках?

misha10:06:51

ого, уверен, что это геополитическое решение?

misha10:06:09

компания в списке? или страна?

mike_ananev10:06:11

не не факт. у меня тогда был с руководством напряг

mike_ananev10:06:31

и поэтому они посмотрели, что архитектор говорит одно а директор - уровнем выше другое

rmuslimov10:06:39

каких списках, какая компания?

mike_ananev10:06:46

и возможно из-за этого просто влазить не хотели

misha10:06:59

ну я вообще не знаю чо как на рынке, кто с кем дружит, кто кого банит, кто где покупает

mike_ananev10:06:10

короче после того как мой директор поговорил с их директором по развитию бизнеса в течении 1,5 часов пришел отказ

misha10:06:57

а, ну за полтора часа можно многое обсудить/наговорить

mike_ananev10:06:31

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

mike_ananev10:06:42

я верю в хорошее, поэтому я за 2 вариант

mike_ananev10:06:50

1 вариант мне конечно дикостью кажется

rmuslimov10:06:32

он же не в каких санкционных списках не присутствует

mike_ananev10:06:45

сами видели

rmuslimov10:06:51

на получение фин средств?

rmuslimov10:06:57

но не на технологии же

mike_ananev10:06:05

есть и на технологии

rmuslimov10:06:16

хм, интересно

mike_ananev10:06:30

@rmuslimov лучше слова тут не писать. говорю же большой и зеленый

mike_ananev10:06:50

есть правила, поэтому так и пишу

rmuslimov10:06:59

ок, сорри

mike_ananev10:06:24

у меня есть 2 кейса для датомика, одни внешний: есть компания, которая очень жаждет кложуристов со знанием датомика. поэтому если кто узнает про реальный кейс продажи и поддержки датомика в рф, поделитесь плиз. очень интересно

dottedmag11:06:53

Заведите дочку на Кипре troll

fmnoise11:06:33

смотря чем занимается компания, если те направления, по которым санкции, то может и это быть причиной

fmnoise11:06:19

хотя у меня вот заказчик из юкей сейчас газпром окучивает

fmnoise11:06:37

удобно - локализацию сами разрабы делают

fmnoise11:06:09

мы спрашивали, мол как так, санкции же

fmnoise11:06:17

а им пофиг

fmnoise11:06:37

кстати, надо предложить когнитекту консалтинг тут открыть)

mike_ananev11:06:26

да, на санкции многие положили, официально говорят одно, а неофициально торгуют.

misha15:06:19

господа, насколько это идентично рефрейму? https://github.com/samroberton/bureaucracy/blob/master/doc/Tutorial.md

misha19:06:19

@roman01la вы еще бойцов в атендифай ищете?

Roman Liutikov20:06:15

@misha да, всегда ищем

Roman Liutikov23:06:12

Уже поговорили