Fork me on GitHub
#clojure-russia
<
2016-01-20
>
artemyarulin06:01:36

@nicola: Ништяк. Надо посмотреть как счас Clojure Remote пройдет и сделать так-же simple_smile

artemyarulin06:01:41

крамольную вещь скажу, но может кто занимался парсингом кложуры? У меня есть сорс файлы, я хочу узнать namespace который он определяет. Как проще всего это сделать?

artemyarulin06:01:36

.*ns\s([\w\\.]+)\w конечно вариант, но хочется покрасивее

artemyarulin06:01:00

clojure.tools.namespace.parse: A parser for namespace declarations in Clojure source files. Given a stream of characters from a Clojure source file, it can find the ns declaration and parse the :require and :use clauses to find the names of other namespaces that file depends on. This is all syntactic analysis: it does not evaluate any code.
https://github.com/clojure/tools.namespace/ нашел, юхууу)

ponimas07:01:49

ну так оно слушает на localhost:PORT_NUM не?

seryh07:01:51

закодил свой первый проектик на clojure https://github.com/seryh/gpsservices буду рад поверхностному кодревью на наличие вопиющего говнокода )

artemyarulin08:01:10

@seryh:

lein kibit
essguids-MacBook-Pro:gpsservices fessguid$ lein kibit
At /private/tmp/gpsservices/src/gpsservices/autolink2.clj:54:
Consider using:
  (zero? (hx/last-byte data))
instead of:
  (= 0 (hx/last-byte data))

At /private/tmp/gpsservices/src/gpsservices/autolink2.clj:89:
Consider using:
  (clojure.string/join (first sat-bin-part))
instead of:
  (apply str (first sat-bin-part))

At /private/tmp/gpsservices/src/gpsservices/autolink2.clj:90:
Consider using:
  (clojure.string/join (last sat-bin-part))
instead of:
  (apply str (last sat-bin-part))

At /private/tmp/gpsservices/src/gpsservices/utils/hexlify.clj:12:
Consider using:
  (neg? i)
instead of:
  (< i 0)

At /private/tmp/gpsservices/src/gpsservices/utils/hexlify.clj:15:
Consider using:
  (neg? b)
instead of:
  (< b 0)

At /private/tmp/gpsservices/src/gpsservices/utils/hexlify.clj:17:
Consider using:
  (str c)
instead of:
  (.toString c)

At /private/tmp/gpsservices/src/gpsservices/utils/hexlify.clj:64:
Consider using:
  (clojure.string/join (mapcat hexify-byte coll))
instead of:
  (apply str (mapcat hexify-byte coll))

At /private/tmp/gpsservices/src/gpsservices/utils/hexlify.clj:103:
Consider using:
  (clojure.string/join chars)
instead of:
  (apply str chars)

andre08:01:40

Clojure 1.8 is now available

andre08:01:37

Alexander Yakushev & Nikita Prokopov contributed to Clojure 1.8 first time

seryh08:01:09

@artemyarulin: ммм анализатор кода, не знал

seryh08:01:04

точнее полагался на встроеный в идею

turtle08:01:09

artemyarulin: что нужно сделать, чтобы можно было вызвать lein kibit?

artemyarulin08:01:12

@seryh: Он сильно помогает когда ты новичок и не знаешь всех функций. Чем дальше тем меньше от него толку + он не особо развавается вроде как сча

turtle08:01:32

В профиль куда-то плагин прописать?

artemyarulin08:01:01

@turtle: :plugins [[lein-kibit "0.1.2”]]

andre08:01:04

маст хев для начинающих в clojure, я вот не знал тоже про него

artemyarulin08:01:23

ага, для начинающих именно мастхев

andre08:01:33

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

turtle08:01:01

Плагин для имакса, вроде, есть. simple_smile

andre08:01:53

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

artemyarulin10:01:34

Чо как кложура 1.8? Вроде как из-за https://github.com/clojure/clojure/blob/master/changes.md#11-direct-linking должен быть бууст по перформансу

artemyarulin10:01:41

опять чота новое для репла, опять штормить будет со всеми тулзами небось

artemyarulin10:01:15

а так как-то слабенько - с 1.7 вот трансдюсеров добавили которые ня, а тут пара функций для строк, хм

malch11:01:27

@artemyarulin А чего тебе не хватает в clojure? simple_smile

artemyarulin11:01:58

ну пускай там Ричи решит чо мне не хватает 😄

last.khajiit11:01:01

а в clojure не принято родмэпы на следующие релизы обозначать?

mike_ananev14:01:46

@artemyarulin: репл теперь доступен при запуске приложения java -jar app.jar

mike_ananev14:01:17

для этого надо просто jvm'у передать мапу на каком порту слушать, и далее можно коннектиться к этому реплу

mike_ananev14:01:31

и смотреть как ведет себя приложение в рантайме

mike_ananev14:01:14

мапа передается через ключ -D

artemyarulin14:01:21

@mike1452: дак вроде и раньше народ как-то этого добивался? Да и все равно по дефолту же не будешь у всех приложений репл держать открытый

seryh14:01:30

да почему, можно вполне держать открытый repl в проде, просто настроить чтоб подключение только с локалхост, удобно

potapenko15:01:49

re-natal обновился - поддерживает react-native 1.8. Что приятно память перестала течь в эмуляторе. Висит приложение сутки, и ничего не отожрало.

ul15:01:18

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

ul15:01:29

который когда-то использовался для первых митапов канала

ul15:01:45

спасибо!

rm16:01:08

и правда

rm16:01:41

потому что по датаскрипту доков нету, а эта штука в самый раз

niquola18:01:27

Спортивное программирование - json schema impl in clojure за 1.5 дня - https://github.com/niquola/json-schema.clj simple_smile Грязно, но спеку проходит.

rm18:01:56

а датаскрипт не может в сортировку же?

seryh18:01:26

а в leiningen - clojure 1.8 известно когда засунут? или как то можно вручную указать внешний jar кложи.

artemyarulin18:01:20

@seryh: Эм, а чо - я не могу просто указать прям счас clojure “1.8.0”

seryh18:01:18

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

seryh18:01:23

для ns user

seryh18:01:58

а для проекта да, подсасывает 1.8

niquola21:01:10

Понял, что мне не нравится, что в clojure f в map reduce и тп идет первым параметром, а не последним simple_smile Почему кстати? Кто нибудь раскапывал?

niquola21:01:37

типа тень каррирования simple_smile

bernik21:01:00

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

(apply map vector [[:a :b :c]
                   [:d :e :f]
                   [:g :h :i]])

;;=> ([:a :d :g] [:b :e :h] [:c :f :i])

bernik21:01:43

для остальных, да, скорей чтобы удобнее было делать partial