This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2015-08-25
Channels
- # admin-announcements (18)
- # beginners (16)
- # boot (13)
- # bristol-clojurians (1)
- # cider (41)
- # clojure (116)
- # clojure-berlin (1)
- # clojure-italy (2)
- # clojure-japan (6)
- # clojure-russia (94)
- # clojurescript (46)
- # clojutre (5)
- # core-matrix (2)
- # cursive (1)
- # datascript (14)
- # datomic (10)
- # devops (73)
- # editors (3)
- # emacs (19)
- # hoplon (382)
- # jobs (1)
- # ldnclj (8)
- # ldnproclodo (4)
- # off-topic (50)
- # onyx (3)
- # reagent (2)
- # yada (19)
есть желающие повелосипедить что-нибудь в свободное от работы время в свое удовольствие? да хоть вебчатик, например?
блин замучился с ресурсами в project.clj
:resource-path “resources”
в коде (def service-account-key (->> "android-service-account.p12" io/resource io/file))
lein run, lein repl работает, uberjar кричит что файла нет, в если открыть jar то он там лежит
что же за беда такая 😞If you need to slurp a file from a JAR file, don't call io/file on the result of calling io/resource, or you will get an exception that says the resource is "not a file". Instead, call slurp directly on the result of io/resource.
https://clojurians.slack.com/archives/clojure-russia/p1440505591000009 а потом над нами все смеются 😃
=> (prn (io/resource "android-service-account.p12"))
#object[java.net.URL 0x26b25514 "file:/Users/mihailt/Documents/fc/srv/resources/android-service-account.p12"]
nil
=> (prn (io/file (io/resource "android-service-account.p12")))
#object[java.io.File 0x16fe7f40 "/Users/mihailt/Documents/fc/srv/resources/android-service-account.p12"]
nil
у меня было что-то подобное, но сейчас просто я не насколько грамотен, чтобы точно сказать как у тебя def срабатывает
#object[java.net.URL 0x3c8cc7fb "jar:file:/Users/mihailt/Documents/fc/srv/target/uberjar/gunter-0.1.0-SNAPSHOT-standalone.jar!/android-service-account.p12”]
а вот если
(prn (io/file (io/resource "android-service-account.p12" )))
то сразу
Exception in thread "main" java.lang.IllegalArgumentException: Not a file: jar:file:/Users/mihailt/Documents/fc/srv/target/uberjar/gunter-0.1.0-SNAPSHOT-standalone.jar!/android-service-account.p12
at http://clojure.java.io$fn__9085.invoke(io.clj:63)
at http://clojure.java.io$fn__9059$G__9041__9064.invoke(io.clj:35)
at http://clojure.java.io$file.invoke(io.clj:414)
at gunter.app$_main.invoke(app.clj:38)
at clojure.lang.AFn.applyToHelper(AFn.java:152)
at clojure.lang.AFn.applyTo(AFn.java:144)
at gunter.app.main(Unknown Source)в другом месте есть такой код
(def default-account-data (->> "default.account.data.edn" io/resource slurp edn/read-string))
(defn google-play-api-credential []
(let [credential
(doto (GoogleCredential$Builder.)
(.setTransport http-transport)
(.setJsonFactory json-factory)
(.setServiceAccountId @service-account-id)
(.setServiceAccountPrivateKeyFromP12File service-account-key)
(.setServiceAccountScopes (seq [@service-account-scope])))]
(.build credential)))
InputStream in = getClass().getResourceAsStream("/file.txt"); BufferedReader reader = new BufferedReader(new InputStreamReader(in));
@maxp: как-то так по итогу:
(defn resource->file
[file-name & {:keys [prefix]
:or {prefix (str (java.util.UUID/randomUUID))}}]
(let [tmp (java.io.File/createTempFile prefix nil)
_ (.deleteOnExit tmp)]
(io/copy (-> file-name io/resource io/input-stream) tmp)
tmp))
как-то взял реакт и наклепал весь интерфейс, если и были какие косяки, то реакт сам мне сказал, что я не так делаю
C ангуляром такая штука – понимаешь, что он жутко уродлив – эти костыли с [“$scope”, function($scope) {}], куча непонятной магии и т.д. Но с ним можно очень быстро сделать приличный интерфейс, если разобраться. К реакту голому пока страшно подходить. А вот cljs + reagent прям отлично пошли – написал немного clojure (+ hiccup-шаблоны очень радуют), и у тебя работающий фронтенд.
https://github.com/aaronc/freactive крайне рекомендую посмотреть если не хочется за собой тянуть React
я брал голый реакт, работал с ним и понял, что если еще немного и все будет просто суперкруто. Вот как дойдут руки, попробую все с cljs для достижения нирваны. Но даже без нее реакт почти полностью снял всю боль от джаваскрипта. Ну, с точностью до того, что я все-таки на кофескрипте писал. Вообще, по-моему реакт я взял по отзывам @prepor, так что респект
ага, я тоже на кофе джс пишу обычно. говорят, что с es6 кофе не нужен больше.
ну да, и все что я написал – с позиции человека, который больше бекендом занимается надо-надо добраться и до голого реакта, и до flux и тд.
Подскажите, пожалуйста. Нет опыта ни с clojure, ни с cljs. Настроил у себя в проекте webpack, использую загрузчик babeljs для es6. Думал, что так же легко можно будет подключить cljs, но ничего по этому поводу не нашел. Возможно ли вообще постепенное внедрение cljs в проект? Спасибо.