Fork me on GitHub
#clojure-russia
<
2016-03-13
>
artemyarulin06:03:44

хм, а как мне сделать аналог setTimeout из JS в кложуре? core.async оно понятно, но не охота тащить ради одной функции. Как понимаю если я сделаю feature|promise и внутри его заблокирую Thread/sleep то он мне заблокирует main thread? Т.е. руками создавать новый тред, в нем делать Thread/sleep и прочее, проще никак низя?

az06:03:24

футуры тоже часть асинка?

artemyarulin07:03:37

(future & body) Takes a body of expressions and yields a future object that will invoke the body in another thread тьфу, прочитал не внимательно

artemyarulin07:03:41

спасибо, он как раз

az08:03:55

@nicola: помню ты потрошил кложуру, рассказывал как все устроено, футур это всегда отдельный тред? В каком месте там пулл используется?

az08:03:43

Слайды не нашел )

antonshwab08:03:05

А монады, функторы, линзы какие-то simple_smile вот это всё - специфика хаскеля? Или это полезные штуки фп, которые применимы в кложур?

larhat08:03:39

нет, не специфика

larhat08:03:02

про монады/функторы/апликативы можно читнуть тут — https://wiki.haskell.org/Typeclassopedia

antonshwab08:03:23

ох, спасибо

larhat08:03:23

(понятно, что functools/cats просто пример)

prepor08:03:58

@az: в каждом месте. тело future запускается в тред пуле

niquola08:03:39

fut (.submit clojure.lang.Agent/soloExecutor ^Callable f)]

prepor08:03:14

volatile public static ExecutorService soloExecutor = Executors.newCachedThreadPool(
	createThreadFactory("clojure-agent-send-off-pool-%d", sendOffThreadPoolCounter));

artemyarulin11:03:35

Народ, я тут запилил либку , юзаю в проде у себя и потихоньку готовлюсь к ее релизу в паблик, добавляю коменты/тесты/доки. Оцените идею, как вам README, многа ли букаф, понятно ли вообще зачем и почем, критика велкам. Идея простая - rule-based programming с поддержкой асихнронных рулов + визуализации из коробки + пачка хелперов облегчающие тестирование и работу с рулам https://github.com/artemyarulin/iokov

larhat11:03:29

чот лейаут нестандартный %)

larhat11:03:11

call order in order to get all user orders %)

larhat11:03:33

(простите, я по мелочам коменчу, конечно, просто веселит)

artemyarulin11:03:06

folder structure? Подтюню, но не сильно - юзаю buck, там плоская структура будет в любом случае. нене, все отлично - это косяк конечно simple_smile

larhat11:03:15

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

larhat11:03:42

хотя эти fork/alts/join типа добавляют суеты, да

artemyarulin11:03:14

неа, ограничений особо нет - все равно конверчу для loom, там свой формат. А ты как бы сделал?

larhat11:03:26

(:request ((:query … …) (:timeout … …)) как-то может быть в эту сторону пошёл — типа s-выражения тебе итак достаточно прямо задают граф, нужно только подумать как добавить нужную инфу про тип связи и поддержать связи между ветками (#link :timeout) мб нормально будет, возможно оно нечастое

larhat11:03:38

ща вот например нода, куда из :response-timeout идёт связь сильно дальше от :request-timeout

artemyarulin11:03:05

хм, как вариант. Надо подумать, создам issue - я действительно не сильно думал над синтаксисом рулов. Хотелось поменьше магии - вектор да :keywordы

az12:03:28

Как много keyword-ов

az12:03:52

Это всё учить типа надо будет?

artemyarulin12:03:03

да неа, все свои напишешь, тока 3 надо запомнить. Но конечно выглядит по первости не ах - одни keyword-ы да

az12:03:45

На кложуре не пишу, но почему мне кажется, что это вообще неудобно?

az12:03:32

Если сделать альт форк и прочее функциями, то можно подставлять дефолтные значения, можно доку/метаданные для неё красивые прописать, ругаться, если пришел не тот аргумент.

az12:03:04

Или я чего-то не понимаю?

az12:03:18

Так модно? 😊

artemyarulin12:03:02

неа, аргумент вполне уместный, я подумаю, спасибо за фидбек!

niquola14:03:11

У процессов в workflow движках есть еще персистентное состояние и возможность продолжить с серединки - у тебя так можно?

artemyarulin15:03:20

@nicola: внутри используется атом для работы с асинхронностью, но снаружи оно не доступно да, надо подумать

artemyarulin17:03:45

Народ вот к стыду своему пропустил C/C++, начинал со всяких паскалей/делфи и ушел к C#. Вопрос - нынешний C/C++ так же чрезмерно сложен? Как скала лол?:) И как вообще там дела с ФП?

Kira Sotnikov21:03:10

чо за фигня, вот есть у меня простенький веб-сервис на aleph.http. В нем есть роут один, положил его за реверс прокси нжинкса, делаю запрос черех хттпс и нжинкс сервис выдает 404 и мой дефолтный ноу фонуд с моего кастомного вебсервиса, если делаю через http напрямую то все работает

Kira Sotnikov21:03:16

Что я мог забыть?

Kira Sotnikov21:03:16

уже с ног сбился, не понимаю почему 404

Kira Sotnikov21:03:45

оно роут считает от слеша после домена