Size: a a a

Clojure — русскоговорящее сообщество

2020 January 16

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
хмм точно
источник

A

Alex in Clojure — русскоговорящее сообщество
можно еще без let
{:original-parts foo
:named-parts (zipmap [:first :second] foo)}
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
zipmap почитаю спасибо
источник

AC

Alexey Cheremisin in Clojure — русскоговорящее сообщество
Господа, хочу вернуться к изучению clojure, в частности clojurescript. Подвернулась задачка на фронтэнд. Использовать ли rum и к нему какой нибудь material-ui? Или с чего начать?
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
вместо mui любую другую открытыю библиотеку компонентов как вариант
источник

AC

Alexey Cheremisin in Clojure — русскоговорящее сообщество
Спасибо!
источник

D

Dmitry in Clojure — русскоговорящее сообщество
Alexey Cheremisin
Господа, хочу вернуться к изучению clojure, в частности clojurescript. Подвернулась задачка на фронтэнд. Использовать ли rum и к нему какой нибудь material-ui? Или с чего начать?
Также могу рекомендовать lein template + shadow cljs https://github.com/shadow-cljs/lein-template или темплейт например от re-frame https://github.com/Day8/re-frame-template чтобы быстрее проект развернуть
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
({"20-1-18" 39} {"1-18-4" 23} {"18-4-13" 35} {"4-13-6" 23} {"13-6-10" 29} {"6-10-15" 31} {"10-15-2" 27} {"15-2-17" 34} {"2-17-3" 22} {"17-3-19" 39} {"3-19-7" 29} {"19-7-16" 42} {"7-16-8" 31} {"16-8-11" 35} {"8-11-14" 33} {"11-14-9" 34} {"14-9-12" 35} {"9-12-5" 26} {"12-5-20" 37} {"5-20-1" 26})

как из этой структуры выбрать максимальное значение? то есть то что в скобках это ключ справа в хешмапе значение
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
надо все слить в одну хэшмапу?
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Сергей Суржик
({"20-1-18" 39} {"1-18-4" 23} {"18-4-13" 35} {"4-13-6" 23} {"13-6-10" 29} {"6-10-15" 31} {"10-15-2" 27} {"15-2-17" 34} {"2-17-3" 22} {"17-3-19" 39} {"3-19-7" 29} {"19-7-16" 42} {"7-16-8" 31} {"16-8-11" 35} {"8-11-14" 33} {"11-14-9" 34} {"14-9-12" 35} {"9-12-5" 26} {"12-5-20" 37} {"5-20-1" 26})

как из этой структуры выбрать максимальное значение? то есть то что в скобках это ключ справа в хешмапе значение
* (transduce (mapcat vals) max 0 data)
* (apply max (mapcat vals data))
источник

AS

Andrew Strokov in Clojure — русскоговорящее сообщество
Ребят, привет! Я совсем далек от кложуры, но тут товарищи попросили запустиь проект распознавалки ходов в игре Го, но действия по readme приводят меня к ошибке
источник

KR

Kostyantin Randomname in Clojure — русскоговорящее сообщество
Это значит надо запостить код ошибки
источник

AS

Andrew Strokov in Clojure — русскоговорящее сообщество
да, сейчас
источник

AS

Andrew Strokov in Clojure — русскоговорящее сообщество
https://github.com/CmdrDats/igoki
этот проект

$ lein -v
Leiningen 2.8.1 on Java 1.8.0_232 OpenJDK 64-Bit Server VM


ошибка

$ lein run
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/aanper/.m2/repository/org/slf4j/slf4j-log4j12/1.6.2/slf4j-log4j12-1.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/aanper/.m2/repository/ch/qos/logback/logback-classic/1.1.2/logback-classic-1.1.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Exception in thread "main" java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper, compiling:(/tmp/form-init7659391403998441268.clj:1:73)
 at clojure.lang.Compiler.load(Compiler.java:7391)
 at clojure.lang.Compiler.loadFile(Compiler.java:7317)
 at clojure.main$load_script.invokeStatic(main.clj:275)
 at clojure.main$init_opt.invokeStatic(main.clj:277)
 at clojure.main$init_opt.invoke(main.clj:277)
 at clojure.main$initialize.invokeStatic(main.clj:308)
 at clojure.main$null_opt.invokeStatic(main.clj:342)
 at clojure.main$null_opt.invoke(main.clj:339)
 at clojure.main$main.invokeStatic(main.clj:421)
 at clojure.main$main.doInvoke(main.clj:384)
 at clojure.lang.RestFn.invoke(RestFn.java:421)
 at clojure.lang.Var.invoke(Var.java:383)
 at clojure.lang.AFn.applyToHelper(AFn.java:156)
 at clojure.lang.Var.applyTo(Var.java:700)
 at clojure.main.main(main.java:37)
Caused by: java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper
 at java.awt.Toolkit.loadAssistiveTechnologies(Toolkit.java:807)
 at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:886)
 at java.awt.Desktop.isDesktopSupported(Desktop.java:169)
 at igoki.core$_main.invokeStatic(core.clj:24)
 at igoki.core$_main.doInvoke(core.clj:21)
 at clojure.lang.RestFn.invoke(RestFn.java:397)
 at clojure.lang.Var.invoke(Var.java:375)
 at user$eval5.invokeStatic(form-init7659391403998441268.clj:1)
 at user$eval5.invoke(form-init7659391403998441268.clj:1)
 at clojure.lang.Compiler.eval(Compiler.java:6927)
 at clojure.lang.Compiler.eval(Compiler.java:6917)
 at clojure.lang.Compiler.load(Compiler.java:7379)
 ... 14 more
источник

AS

Andrew Strokov in Clojure — русскоговорящее сообщество
Kostyantin Randomname
Это значит надо запостить код ошибки
спасибо за подсказку, проблема решилась!

(Нужно было Закомментировать
# assistive_technologies=org.GNOME.Accessibility.AtkWrapper
в /etc/java-?-openjdk/accessibility.properties)
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Dima Fomin
В будни проверю на рабочей тачке, какая картина будет с 99 ядрами :)
так что там с 99 ядрами?
источник

D

Dos in Clojure — русскоговорящее сообщество
🍿
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
99 ядер сидели на компе
запустили кложу, их стало 98
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Dima Fomin
О! Класс, спасибо! Вобщем вывод ясен - мутейтить общий стейт - тормозно, лучше всего в stateless цикле накопить и потом по разу на тред послать результат.
Я вставил цикл в свой кусок с Adder и тоже получилось, как с async по времени
ну вот на меня сегодня ещё раз нашло, и я ещё побенчмарчил https://github.com/serioga/clojure-benhcmarks/blob/master/src/clojure_benchmarks/long_adder.clj

как бы базовые выводы такие:

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

- если данные поступают медленно, то atom отлично справится с регистрацией поступающих данных

- если параллельность нужна, то atom почти так же хорош, как и LongAdder, при этом он не ограничен только суммированием и к его изменениям можно подписаться
источник