Fork me on GitHub
#clojure-russia
<
2015-10-15
>
andre07:10:14

(defn create-room [req]
       {:status  200
        :headers {"Content-Type" "text/html"}
        :body    (loop []
                       (let [troomid (reduce str (take 4 (repeatedly #(rand-nth mapchars))))]
                            (if (try (mc/insert-and-return db coll {:roomid troomid})
                                     true
                                     (catch DuplicateKeyException ex
                                       false)
                                     ) (str troomid)
                                       (recur))
                            ))})

andre07:10:22

вот в итоге к чему пришел, всем доброе утро

andre07:10:33

пришлось поставить в монго roomid уникальный индекс

andre07:10:44

насколько это повлияет на производительность не знаю

ul07:10:35

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

andre07:10:46

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

andre07:10:56

а есть что-то типа cron в кложуре?

malch07:10:00

@andre: Есть разные библиотеки, большие и маленькие

andre07:10:45

мне попроще, чтобы выполнялась функция раз в час simple_smile

andre07:10:24

@malch: спасибо, поизучаю

andre07:10:25

вот кстати что первое нагуглил https://github.com/zcaudate/cronj

malch07:10:04

Тоже вариант

malch07:10:24

There are now many more scheduling libraries in the clojure world: at-at chime clj-cronlike cron4j monotony quartzite schejulure

malch07:10:52

Сам пользовался именно chime для несложных вещей, все было ок 👍

andre07:10:59

спасибо

andre07:10:34

im.chit -что-то означает группа? или это разработчик?

ponimas07:10:50

есть ещё https://github.com/prepor/twarc от prepor-a жеж

andre07:10:51

<groupId>im.chit</groupId>

malch07:10:17

@andre: Подозреваю, что это сам разработчик (https://github.com/zcaudate) такое добавил

niquola08:10:50

Давайте выбирать тему для хэнгаута в понедельник!

petr.myain10:10:07

свежий индекс популярности языков программирования TOIBE October 2015: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

petr.myain10:10:41

Clojure всё ещё в TOP 50, правда опустился на 50 место, пропустив вперёд Rust

Kira Sotnikov10:10:29

странно, что там делают авк, баш и корн шелл?

niquola11:10:16

VisualBasic поднялся simple_smile Все на VB

niquola11:10:47

Вакансия awk программиста simple_smile

Kira Sotnikov11:10:13

надо кложу портировать на дотнет

prepor11:10:02

оно есть

prepor11:10:05

под дотнет

prepor11:10:38

от ричи при том

prepor11:10:47

но оно мертвое вроде довольно, не знаю

rm11:10:35

а можно из трейса убирать строки, которые не относятся к приложению?

prepor11:10:21

в проде или репле?

rm12:10:29

в репле

rm12:10:37

а это важно?

kronos_vano12:10:23

какой веб либа самая модная? у меня не кип элайф соединения но их может быть очень много одновременных. immutant2 или aleph? http-kit я так понял помирает

prepor12:10:10

@rm: ну как бэ разные штуки же трейс рисуют ) cider умеет фильтровать стэктрейс.

prepor12:10:43

@kronos_vano: ты про клиент или про сервер таки?

kronos_vano12:10:32

ну сервер

kronos_vano12:10:51

в рубях есть юникорн пума вокруг rack

kronos_vano12:10:55

а тут я так понял все вокруг ring

andre12:10:11

а что есть либы модней http-kit ?

prepor12:10:23

ну термины у вас...

prepor12:10:24

http-kit вполне себе работает, хоть и не особо правильно фундаментально написан. aleph мне кажется очень неправильным софтомю immutant это вообще просто набор либ, веб-сервер там на wildfly

prepor12:10:36

“много” это сколько?

kronos_vano12:10:12

ваще хочется 2к одновременно

kronos_vano12:10:34

но балансировщик воткнуть не проблема

prepor12:10:46

это хуйня

kronos_vano12:10:48

самое важное для меня - асинхронный ответ

prepor12:10:12

можешь взять http-kit, можешь взять pedestal

prepor12:10:44

в целом не проблема легковесную оболочку вокруг undertow сделать

kronos_vano12:10:20

а для асинхронных http запросов что лучше?

prepor12:10:27

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

prepor13:10:21

это вокруг ratpack. но оно очень сырое, хоть и прикольное и нужно быть готовым контрибутить в проект )

prepor13:10:53

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

kronos_vano13:10:23

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

prepor13:10:26

ну в общем это самое сырое, имей ввиду )

prepor13:10:59

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

prepor13:10:37

я когда catacumba пробовал прям на совсем банальные баги натыкался типа https://github.com/funcool/catacumba/pull/29

prepor13:10:01

И недоделки https://github.com/funcool/catacumba/issues/31. Но парень годный и все правит быстро

kronos_vano13:10:38

вижу в тикетах "Add support for SSL"

ul13:10:31

@prepor: о педестале впечатления после короткого занкомства, или активного использования?

prepor13:10:48

@ul: активного использования ) он немного шизанутый конечно, но в целом ок ) не лайк?

prepor13:10:26

@kronos_vano: ну как бэ это очень опциональная и я бы сказал ненужная фича для сервера. зачем тебе терминировать ссл тут?

ul13:10:27

да я спрашиваю потому, что думаю о смене http-kit+compojure на что-нибудь

ul13:10:38

и педестал не трогал воообще

ul13:10:48

надо на него внимательно посмотреть тогда

ul13:10:07

потому что полгода назад отзывы были вроде того что чёрт ногу сломит

prepor13:10:07

ну мне кажется это лучшее что можно взять и использовать сейчас

kronos_vano13:10:23

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

prepor13:10:11

у тебя nginx может терминированием заниматься

prepor13:10:33

перед кложкой

prepor13:10:55

но у нас на балансере вообще всегда, ибо нефиг

ul13:10:48

педестал сильно получшел с первой версии

ul13:10:59

и в плане архитектуры, и в плане документации

prepor13:10:57

педестал в “первой версии” вообще был больше про фронтенд

ul13:10:48

а почему в кавычках? реально же она была за номером один

prepor14:10:37

ну потому что сейчас 0.4 simple_smile

alexey.badenkov14:10:20

@prepor а можешь в двух словах объяснить в чем фундаментальная неправильность хттпкита?

prepor14:10:36

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

prepor14:10:43

ну и в целом на коленочке написан )

alexey.badenkov14:10:41

Ясно. Спасибо