This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-02-08
Channels
- # aatree (3)
- # announcements (1)
- # architecture (5)
- # beginners (27)
- # boot (22)
- # cider (17)
- # cljsrn (8)
- # clojure (93)
- # clojure-canada (1)
- # clojure-dev (7)
- # clojure-nl (10)
- # clojure-poland (216)
- # clojure-russia (35)
- # clojurescript (163)
- # community-development (6)
- # cursive (25)
- # datavis (6)
- # datomic (18)
- # dirac (10)
- # dysphemism (4)
- # editors (3)
- # editors-rus (1)
- # emacs (15)
- # hoplon (124)
- # instaparse (25)
- # jobs (10)
- # ldnclj (78)
- # lein-figwheel (11)
- # leiningen (6)
- # off-topic (20)
- # om (149)
- # onyx (2)
- # parinfer (5)
- # portland-or (1)
- # proton (62)
- # quil (2)
- # re-frame (8)
- # spacemacs (4)
- # yada (20)
Уважаемые, а расскажите почему вы используете boot и какие собрали грабли при переходе с lein?
в boot’e вместо декларативщины используется просто код на clojure, т.е. ему можно очень чётко объяснить, что и как делать. лишних jvm он не запускает
одна беда у бута - clojurescript, собирает медленно, иногда до такой степени бесит, что у меня в итоге cljs собирает lein, остальной проект - boot
1-3 секунды против 0.1-0.5 в cljsbuild
хотя deraen говорит что должно быть сейчас быстрее, надо бы погонять бенчмарки
вопрос про сочетание boot и mount. У меня есть таска dev:
(deftask dev []
(comp (environ :env {:database-url dev-database-url})
(serve :dir "target" :handler 'tms.handler/app :reload true)
(watch)
(sass)
(reload :on-jsload 'tms.core/main)
(cljs-repl)
(cljs) ; :source-map true :optimizations :none)
(target :dir #{"target"})))
Куда запихать (mount/start)
?в production понятно, я его положу в самый что ни на есть -main. а в dev-режиме где должен случиться первый вызов start?
всем привет. А как может случаться такая странная фигня - в uberjar jdbc (mysql через c3p0) возвращает гораздо меньше результатов (40-50) в отличии от lein run или repl (около тысячи)?
(let [cpds (doto (ComboPooledDataSource.) (.setDriverClass (:classname spec)) (.setJdbcUrl (str "jdbc:" (:subprotocol spec) ":" (:subname spec))) (.setUser (:user spec)) (.setPassword (:password spec)) (.setMinPoolSize 16) (.setIdleConnectionTestPeriod 30) (.setMaxIdleTimeExcessConnections (* 30 30)) (.setMaxIdleTime (* 3 60 60)))]
Похоже что у тебя просто пула нет - и каждый запрос открывает соединение, потрэкай со стороны MySQL.
@batsuev: интересно сделано http://github.com/batsuev/barcode в java файле цепляется *.so и затем java модуль инклудится в clojure проджект
@niwinz: тут беда c suricatta. Пытаюсь использовать RETURNING в постгресе. получаю java.lang.IllegalArgumentException: No implementation of method: :-fetch of protocol: #'suricatta.proto/IFetch found for class: org.jooq.impl.InsertImpl
код выглядит примерно так:
(defn create-user
[attr-map]
(let [a (assoc (select-keys attr-map [:name :email])
:encrypted_password (hashers/encrypt (:password attr-map)))
op (-> (dsl/insert-into :users)
(dsl/insert-values a)
(dsl/returning :id))]
(println (fmt/get-sql op {:dialect :postgresql}))
(sc/fetch-one context op)))
печатает "insert into users (name, email, encrypted_password) values (?, ?, ?) returning id" и помирает от исключенияthis is very easy to fix, and the quick workaround for it just pass the sql string to fetch-one.