This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2015-10-14
Channels
- # admin-announcements (21)
- # aws (5)
- # boot (41)
- # cider (76)
- # cljs-dev (15)
- # clojure (251)
- # clojure-brasil (25)
- # clojure-dev (16)
- # clojure-japan (8)
- # clojure-nl (1)
- # clojure-russia (110)
- # clojure-uk (7)
- # clojurescript (168)
- # clojurewerkz (1)
- # cursive (10)
- # datomic (45)
- # devcards (50)
- # emacs (5)
- # hoplon (6)
- # instaparse (6)
- # ldnclj (73)
- # lein-figwheel (4)
- # leiningen (6)
- # liberator (7)
- # luminus (2)
- # off-topic (19)
- # om (80)
- # onyx (2)
- # re-frame (11)
- # testing (12)
есть уелый курс профессора Рыбиной по постановке диагноза из наблюбений
все что помню из института, когда она у нас вела - что это в общем случае нерешаемаемая задача
http://www.directmedia.ru/book_231819_tehnologiya_postroeniya_dinamicheskih_intellektualnyih_sistem/
может помоч
в любом случае, есть http://qa.nlpub.ru/ и там даже активно сидят люди
ну и http://nlpub.ru для матчасти
Я детали уточню и закину. там вроде нужно именно извлечь диагноз, а не поставить, и потом закодировать - те есть ещё база диагнозов с синонимами. Я так понимаю, что под конкретные предметные области свой словарь обычно делают.
задачка - нужно генерить хеш-код до тех пор пока он не будет уникален в БД, записать в БД , и вернуть клиенту
(defn create-room [req]
((let [conn (mg/connect)
db (mg/get-db conn "chat-db")
coll "rooms"
chars (map char "0123456789ABCDEF")
roomid (loop []
(let [troomid (reduce str (take 4 (repeatedly #(rand-nth chars))))])
(if-not (mc/find-maps db coll {:roomis troomid})
(str troomid)
(recur) ))])
{:status 200
:headers {"Content-Type" "text/html"}
:body roomid}))
CompilerException java.lang.RuntimeException: Unable to resolve symbol: troomid in this context, compiling:
вообще, более идиоматично кмк будет создание бесконечной коллекции с кодами, а потом find по ней с передачей функции, которая будет ломиться в бд
да, там идея простая, для комнаты генерится id из 4х спец символов, записывается в базу, ну соотв этот код комнаты должен быть уникален
@andre: что будет если у вас два параллельных процесса сделает find одновременно по одному коду?
подскажите как правильно мне нужно добавить в мой код функцию которая запишет в БД,я не совсем понимаю с точки зрения ФП как это должно выглядеть
а вот от всяких conn (mg/connect) в рамках обработки запроса нужно, конечно, избавиться )
@nicola: помнишь ты искал способ запускать figwheel из репла, а не отдельно - получилось? кто-нибудь еще знает как?
@rm: спасиб. кстати, я тут на полгода наверное выключился из clj-жизни вижу css-dirs
- оно вотчит css теперь? можете вкратце рассказать что произошло? om-next еще нет, на 0.13 перешли кажется, что еще из важного?
@rm т.е. ты настройки билда вообще выкинул из project.clj? https://github.com/taoeffect/slothcfg это пробовал?
потому что фаза запуска lein плагинов и всего, что юзает project.clj жестко отделена от рантайма, хотя чисто для билд-конфига можно просто прочитать файлик
а в конфиге дублирование просто. Не скажу, что мне очень нравится, просто я по-другому не думал, как сделать
ну пока у меня есть onelog, но он пишет в файл. В руби была модная хренотень, она прямо ошибки в грейлог пробрасывала, нужно было только законфигурять
https://github.com/t0xa/gelfj вот эта лабудень чтоли должна работать
нафига вообще этот onelog юзать? у тебя есть интерфейс в виде clojure.tools.logging. а что бы логи от библиотек работали ты еще один логгер настраивать будешь?
> Appending a + (plus sign) to the standard logging functions will copy the messages to STDOUT in addition to logging them to the log file: на этапе написания кода решать куда мне их нужно писать логи? хаха
ну вот юзай clojure.tools.logging + slf4j + logback. и настраивай логи иксемелем как хочешь, хехе )
а чего для конфигов используете, кстати? Ну там, данные для коннекта к базе, всякие другие env-зависимые переменные?
дело не в этом, мне довольно пофигу xml писать или едн. смысл в том что бы логинг конфигурялся в рантайме
определяясь какой-то другой логикой (при запуске тестов хочу один логгинг-конфиг, при запуске прод-настроек — другой)
у нас например в ci было что при запуске тестов, в рамках которых были эксепшены улетали соответсвующие эксепшены в сентри. просто потому тесты пускаются уже по собранному контейнеру, в который положили прод-конфиг логгера. приходится чуть изменять билд. ну и вообще, конфиги в разных местах получаются
а чо энвирон? Вот ты из репла собрался тесты запустить -- как логгер переинициализировать?
кстати да, environ морально устаревает для подхода одни репл на все нужды. alter-var-root #’environ.core/env
и т.д.
timbre хорош тем, что пытается угодить cljs с версии 4 и это гут, но @prepor правильно заметил, у нас экосистема большая и без sf4j жить не выходит
да, кложурные логгеры конфигуряются неплохо и идеоматично, но вот например в тот же graylog оно имеет писать из коробки?
Appenders are trivial to write & configure -they're just fns. It's Timbre's job to dispatch useful args to appenders when appropriate, it's their job to do something interesting with them.Being 'just fns', appenders have basically limitless potential: write to your database, send a message over the network, check some other state (e.g. environment config) before making a choice, etc.
кажется скоро разговор сведется к спору как лучше 1) юзать сырой интероп 2) оборачивать java либы 3) писать свое с 0 идеоматично был уже такой опрос?
не знаю зачем нужен timbre. в любом случае нужен будет другой логгер для ява либ, а логбэк еще и умеет куда больше
https://github.com/narkisr/gelfino-client меж тем, с timbre и вот этой фиготенью можно перезадавать конфиги в репле