This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-08-01
Channels
- # admin-announcements (8)
- # arachne (11)
- # beginners (17)
- # boot (64)
- # cider (26)
- # cljs-dev (7)
- # cljsrn (1)
- # clojure (115)
- # clojure-belgium (2)
- # clojure-dusseldorf (15)
- # clojure-poland (15)
- # clojure-russia (62)
- # clojure-spec (86)
- # clojure-uk (208)
- # clojurescript (36)
- # cursive (4)
- # datavis (11)
- # datomic (44)
- # editors (9)
- # hoplon (21)
- # jobs (4)
- # mount (21)
- # off-topic (3)
- # om (113)
- # onyx (65)
- # parinfer (2)
- # perun (3)
- # proton (6)
- # re-frame (29)
- # reagent (20)
- # yada (3)
чот я застряд
вот есть у меня вектор в нем IP адреса, как мне получить другой вектор где будет ["https://$IP:PORT/blabla"]
спасибки
Роботает
Парни, а разве слэш должен быть экранирован? Ruby
"a/".to_json
"\"a/\""
Clojure
(json/write-str "a/")
"\"a\\/\""
char
any-Unicode-character-
except-"-or-\-or-
control-character
\"
\\
\/
\b
\f
\n
\r
\t
\u four-hex-digits
@seryh: зацени - 2010! 🙂 https://dev.by/lenta/main/rasshiryaya-granitsy-clojure
у современных json либ своеобраное понимание стандарта в плане слешей, utf-8 и прочих мелочей.
у меня есть ruby код, который аплоадит файлы на s3, он работает переписал его на clojure, амазон говорит, что signature неправильная
(defn sha1-hmac [key data]
(mac/hash data {:key key :alg :hmac :digest :sha1}))
аналог
def s3_signature
Base64.encode64(
OpenSSL::HMAC.digest(
OpenSSL::Digest.new('sha1'), ENV['S3_SECRET'], s3_policy)).gsub("\n", "")
end
and the clj version (I'm supposing that you are using buddy-core) does not generates the \n
line endings so that should be skiped
Well, I think I found it: if I remove "/" from my path in both ruby and clojure versions then signatures are the same. If I add it back then they are different 😞
кстати народ, вот в мире хаскеля принято pointfree style писать, в кложуре кто-нить так делает?
(defn parse-args [args] (zipmap [:type :name :task :src :out] args))
;; vs
(def parse-args (partial zipmap [:type :name :task :src :out]))
ага дада, я знаю что оно одно, т.е. тут больше к стилю относится
а ну значит ок, пример как раз мне был нужен) А то просто иногда проще partial написать чем тратить 5 секунд чтоб название параметра придумывать 🙂
а slurp может мне показать http response code?
404 там или 200
зафигачил через try catch
@artemyarulin: я участвовал в проекте, в котором значительная часть кода была в point-free стиле. Целью было упрощение кода (проект оч большой и запутанный). В итоге тысячи строк кода в таком аппликативном стиле. Это потребовало написания целой библиотеки, которая позволила выражать большую часть идей композициями комбинаторов. Один из минусов - сильное увеличение “ежедневного словаря” функций. В итоге, лично я не считаю что это какая-то сильно удачная стратегия для упрощения кода и предпочитаю другие, и такой подход использую в ограниченных объемах. Когда это одна функция, можно считать, что это то же самое и просто другой стиль. Когда их две и более и они сочетаются, это уже в корне другой подход.
так это разве не суть карринга?
@ilshad: О вау, а либа случаем не опер сорс? Или может сам проект можно посмотреть?
@artemyarulin: нет, к сожалению. Чтобы заопенсорсить, нужно там порядок наводить, а так она заинлайнна в проекте.
@artemyarulin: процентик жеж еще! 🙂
(def parse-args #(zipmap [:type :name :task :src :out] %))