Fork me on GitHub
#clojure-russia
<
2015-12-31
>
seryh06:12:02

может кто объяснить почему user=> 0xFF ; 255 а user=> (vec (byte-array [0xFF])) ; -1

seryh06:12:05

а (byte 0xFF) вообще ошибку возвращает

turtle07:12:07

@seryh: а что тебя смущает?

turtle07:12:16

Байт это же от -128 до 127.

turtle07:12:27

Всё, что выше 127, будет на byte ошибку возвращать.

turtle07:12:03

А 0xff - это просто число в шестнадцатеричном виде 255, которое при касте к числу (не байту) дало 255.

seryh07:12:11

(vec (byte-array [0xFF])) ну тогда ожидалось бы что и тут будет ошибка

turtle07:12:31

А в byte-array, видимо, код из явы работает, который имплицитно преобразовал.

turtle07:12:45

Потому что 255 - это -1 и есть.

turtle07:12:14

Ну видишь же, кложура она не сама по себе, а на java платформе. Поэтому это тоже нужно учитывать.

seryh07:12:33

ну да, логично, спасибо

artemyarulin08:12:11

Прочитал счас чутка коментов вот тут https://news.ycombinator.com/item?id=10812198, среди прочего:

[Erlang] also driving almost all of the non-Google ad networks, has a pretty sizable footprint in high-finance, and increasing numbers of online gaming (mobile and console) backends are built with it (or its younger cousin, Elixir).
Так как я занимаюсь сейчас именно этим (рекламой) то что-то заинтересовало. Тут вроде кто-то постил что он начал ерланг копать, как чо?

prepor08:12:12

Эрланг хороший, чо. Только вербозненький и с ошибками в дизайне синтаксиса, который Армстронг так и не решился исправить

turtle08:12:33

artemyarulin: да ну нафиг.

artemyarulin08:12:02

ну еликсир как понимаю фиксит именно синтаксис (уебищный согласен)

prepor08:12:42

эликсир нифига не фиксит, а только портит

prepor08:12:54

фикшеный синтаксис сделал сам армстронг

prepor08:12:04

ну а еще beam все еще ооочень медленный, наверное для некоторый кейсов это критично

ul08:12:37

был бы против, не делал бы агенты

ul08:12:45

хотя ими никто не пользуется в результате )))

ul08:12:58

разве что в демке с муравьями от самого

ul08:12:30

хотя я сильно обобщаю, наверное

ul08:12:39

кто-нибудь пользуется агентами в кложе?

prepor08:12:54

агенты с акторами вообще не особо связаны

prepor09:12:06

если хочется акторов, то есть, например https://github.com/puniverse/pulsar

prepor09:12:23

вместо с новой моделью скедулинга

artemyarulin09:12:53

пульсар видел ага. Да я не очень уверен что хочу simple_smile Так, размышляю вслух, выслушиваю мнения

niquola09:12:46

Я тоже не люблю эликсир - дипломная работа

niquola09:12:08

Есть erlang flavored lisp от парня из коре тим

niquola09:12:42

У эрланга мощь - OTP и виртуальная машина

artemyarulin09:12:43

может кто знает - как мне получить file path текущего ClojureScript файла? (defmacro t [] (str *file*)) ;; "/private/var/folders/90/v8zfw8f91n58nns2p47y_xh80000gn/T/form-init7551667681750568197.clj"

artemyarulin09:12:54

через *file* чота не получается

artemyarulin10:12:22

все оказалось проще

;; clojure
(defmacro path [ns] (:file (meta ns)))
;; clojurescript
(path (str *ns*))

artemyarulin10:12:07

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

ul10:12:54

(meta (var *ns*))

ul10:12:17

а, блин, у cljs в рантайме варов нету

ul10:12:50

хотя у меня в :optimizations none сработало только что

ul10:12:45

хотя это даст файл, в котором *ns* лежит

ul10:12:01

надо вытаскивать мету из какого-нибудь вара в текущем неймспейсе

artemyarulin10:12:19

да неа, с макросом нормально я все равно его пишу - так что пучком все

artemyarulin10:12:08

получается вот так если кому интересно:

(defmacro t [n] (meta n))
(.log js/console “Without macro:" (str (meta (var *ns*))))
(.log js/console “With macro:" (str (t (var *ns*))))

Without macor:
 {:ns cljs.core, :name *ns*, :file "cljs/core.cljs", :end-column 7, :column 1, :dynamic true, :line 28, :end-line 32, :arglists (), :doc "Var bound to the current namespace. Only used for bootstrapping.", :jsdoc ["@type {*}"], :test nil}
With macros:
 {:file "/private/tmp/qwerty/src/qwerty/state.cljs", :line 8, :column 34, :end-line 8, :end-column 44}

artemyarulin10:12:54

а кста, да - если дать локальную переменную то все работает и без макроса:

(.log js/console "WITHOUT:" (str (meta (var app-state))))
WITHOUT: {:ns qwerty.state, :name app-state, :file "/private/tmp/qwerty/src/qwerty/state.cljs", :end-column 15, :column 1, :line 4, :end-line 4, :arglists (), :doc nil, :test nil}

artemyarulin10:12:23

хотя вот не уверен насчет оптимизаций

artemyarulin11:12:50

а ничо в кложуре нет чтоб не повторять два раза id вот тут? (when (= (:id client) (:id sender)) ...

artemyarulin11:12:29

ну лет оно понятно

artemyarulin11:12:32

даже обобщу:

(when (or (not (= (:id client) (:id sender)))
          (and (= (:id client) (:id sender))
               (> (:tid client) (:tid sender))))
       …)
можно это как-нить покрасивее сделать? надо запустить код когда id разные или когда одинаковы но tid меньше

artemyarulin11:12:50

а туплю, зафега я второй раз проверяю на равенство айдишников. Спасибо @artemyarulin. Ю велкам @artemyarulin.

rm11:12:28

ю ар

rm11:12:59

ну запили какую-нибудь функцию order-by

artemyarulin11:12:28

да запилить то все можно, думал мож уже есть чо

rm11:12:42

есть compare

rm11:12:52

можно compare-by из одной строки сделать

rm11:12:42

странно, почему sort-by есть, а compare-by нету

artemyarulin11:12:55

вот с ним бы было круто да

artemyarulin11:12:12

(compare-by :id client sender)

abtv17:12:59

С наступающим, коллеги! Больше success stories в новом году! simple_smile

artemyarulin17:12:27

(Всех с нг)

niquola17:12:28

С новым годом, друзья! Вызовов и побед в следующем году! 🎄

malch18:12:08

Всех с новым годом, коллеги! 🎆

ir4y18:12:06

С новым годом годом из Сибири !!!

alexey.badenkov20:12:26

С Новым Годом!