This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-04-07
Channels
- # admin-announcements (4)
- # aws (2)
- # beginners (25)
- # boot (116)
- # braid-chat (4)
- # cider (6)
- # cljsjs (4)
- # cljsrn (17)
- # clojure (196)
- # clojure-austin (23)
- # clojure-belgium (5)
- # clojure-dev (78)
- # clojure-dusseldorf (6)
- # clojure-italy (2)
- # clojure-japan (6)
- # clojure-poland (1)
- # clojure-russia (132)
- # clojure-sdn (1)
- # clojure-uk (26)
- # clojurescript (87)
- # code-reviews (3)
- # core-async (26)
- # cursive (8)
- # datomic (40)
- # devcards (8)
- # emacs (4)
- # funcool (32)
- # hoplon (30)
- # jaunt (34)
- # jobs (1)
- # lein-figwheel (1)
- # leiningen (5)
- # om (14)
- # onyx (8)
- # overtone (31)
- # parinfer (14)
- # proton (8)
- # protorepl (1)
- # re-frame (30)
- # reagent (10)
- # spacemacs (2)
- # untangled (107)
- # yada (3)
Ребят, напомните плиз как называется тот плагинчик для леина, не могу найти: там оно делает прямо в браузере repl, и там можно всякие графики строить
фигвил?
сёдня вечерком на работе митап по кложе делаем -- хотел с его помощью результаты показать )
@lapooh: а ты настраивал его как-то дополнительно? как выделить целое выражение без visual mode и затем скопировать и вставить?
мне нужно 2 вещи: возможность копировать в буфер обмена ос и обратно через y/d/p, а не использовать еще и Ctrl+c/v/x; и второе - это нормально копировать s-выражения
да, выделяеш, что хочеш скопировать, и последовательно "+y, после чего(если в vim'e), то "+p
а как понять "нормально копировать s-выражения" ? Мне вот в ideavim не хватает выделения текста между тегами, у нас конфиг приложения - xml(40k loc)
Если хочеш работать с буффером ОС через ydp, то просто замапь выше описанное комбо на них 😃
Никто кста не смотрел на redux из мира JS? Чем больше про него читаю тем больше нравиться, разве что чутка подтюнить
хм, спасибо - почитаю всеж про elm тада
а в CLJS ближайший аналог это чо?
если есть
а ну и какие проблемы, скейлится оно когда приложение вырастит?
@abtv, vim в идее - нет, дофига конфликтов в конфигах и мышечной памяти. любая гуя не воспринимается как вим совершенно, и рефлексы не подгружаются
@artemyarulin: нахрена тебе отот js? бери атом/датаскрипт, бери add-watch, и нахлобучивай что вздумается
@misha: неее, JS мне не нужен:) Думаю просто про state storage/handling для Rum, вот выбираю как именно нахлабучивать
неа, чота я его побаиваюсь
я везде, где трогаю js в реакт нейтиве - отгребаю из-за несимметричности clj->js и js->clj и бешусь дико: ключи теряются в значениях, неймспейсы в ключах, лишний код, фу.
вообще, мне тоже ссыкотно стейт из 3 "переменных" хранить в нем. зато как бд на несколько тысяч перелинкованых сущностей по 3-10 полей в каждой - ваще найс
У меня Mail client по сути. RN приложение + хочу еще веб версию его-же. DS может и подойдет, ну хз - выглядят запросы стремно
и думаю в нем же хранить стейт всего приложения (а не отдельно скрина), чтобы после перезапуска можно было не сначала начинать, а с прошлого раза.
ага, я тоже хочу full in и хранить все там
если мы про стейт страницы:
(def page-pull-pattern [:page/editing? :page/id :page/entity-id])
(let [page-state (d/pull @conn page-pull-pattern [:page/id :email-details])]
(println (pr-str (page-state))
=>>
{:page/editing? true
:page/id :email-details
:page/entity-id #uuid "57061e08-85e0-413c-9316-3f72a7edec72"}
ну уговорил - почитаю и подумаю вечерком про DS
пойду спрошу сча про DS performance в #C0E1SN0NM, помню там было у кого-то
просто если ты хранишь только это (3 поля) в базе - понту нет совершенно. а если у тебя их десяток, все немного разные и ветвистые, и не только пейдж-стейты – самое то
это у меня столько транзакций на какой-то там клик выполняется последовательно. сначала парился их собирал в 1 транзакцию, чтобы разом закоммитить, а потом забил и тупо много раз. посмотри на таймстемпы. это симулятор айфона 5. насколько он соответствует самому телефону по производительности - хз
транзакции - посоздавать пару сущностей с дефолтными значениями и полинковать их промеж собой
хм, хз - мне кажется надо попробовать на старом андроиде. Там может быть в 10 раз медленнее наверно
вот 2 семпла pull'a ветвистой сущности (одной и той же) с парой веток и глубиной 5
2016-04-07 11:52:46.640 [info][tid:com.facebook.React.JavaScript] GETTING
2016-04-07 11:52:46.676 [info][tid:com.facebook.React.JavaScript] "Elapsed time: 35.000000 msecs"
2016-04-07 11:52:46.701 [info][tid:com.facebook.React.JavaScript] GETTING
2016-04-07 11:52:46.724 [info][tid:com.facebook.React.JavaScript] "Elapsed time: 22.000000 msecs"
@asolovyov говорит, там всё очень и очень плохо с js (?)
@misha: по поводу IdeaVim: а если хочется еще и на java писать?. я уже неделю экспериментирую с идеей: включил distraction free mode (нет никаких менюшек и кнопочек, правда включил заголовки табов) и настроил основные операции на хоткеи. У меня на экране только код и закладочки. Если нужен репл, то я через хоткей показываю окошко, таким же образом и скрываю его. Терминал также. Поиск тоже на хоткеях.
Да я вимом никогда не пользовался для программирования, просто конфиги правил. А тут вот решил попробовать и для разработки, только вот просто вим или спейсмакс было круто для меня, слишком много нового, я хотел не терять скорости разработки на первое время. Ну и да, java у меня есть тоже
@artemyarulin: слушай, я тут апп без присмотра оставил на 4 часа, так там памяти со 100 до 300мб натекло в эмуляторе. ты подобного не замечал? за RN или нативным кодом вообще
@misha: Симулятор это плохой пример для перформанс тестирования вообще + RN в дебаге + фигвил жрет вроде память в дебаге. Попробуй релиз билд + запусти на девайсе, потом подключи Instruments и я почти уверен что течь не будет
народ - а что можно почитать на тему AI? Интересная ж тема - написал один раз, а дальше он сам все за тебя пишет
неа, серьезно - с чего начать, книжку какую посоветуете мож?
ну и в догонку - никто не видел какие примеры на тему использования AI/rules engine/logic progamming в контексте обычных UI приложений с 2 табами да пятью кнопочками?
@artemyarulin: как такое дебажить (удобно)?
2016-04-07 17:04:05.851 [info][tid:com.facebook.React.JavaScript] ==== Shimming jsloader ====
2016-04-07 17:04:05.949 [error][tid:com.facebook.React.JavaScript] Evaluation error in:
2016-04-07 17:04:05.955 [error][tid:com.facebook.React.JavaScript] { [TypeError: undefined is not an object (evaluating 'wn.ios.core.init')] line: 7, column: 319 }
и такое:
$ rlwrap lein figwheel ios
Figwheel: Starting server at
Figwheel: Watching build - ios
Compiling "target/ios/not-used.js" from ["src" "env/dev"]...
{:tag :cljs/analysis-error}
ANALYSIS ERROR: on file null, line null, column null
там же можно Chrome debugger подключить
с ним типа разобрался, но если у тебя запуск начинается с красного скрина - скольок эмулятор не тряси - он к дебагеру не подключается )
кароче от зажевывающего эксепшены фигвила
Compiling "target/ios/not-used.js" from ["src" "env/dev"]...
{:tag :cljs/analysis-error}
ANALYSIS ERROR: on file null, line null, column null
спасает $ lein cljsbuild once
народ, подскажите с core.async как правильнее использовать. использую такой стандартный блок
(defn async-method []
(let[port (chan)]
(go
;; (<! (do-it))
(put! port “[anync-complete]")
)
port
)
)
Чтобы его перехватывать выше в методе, в go
(defn my-method []
(go
(println (<! (async-method)))
(println (<! (async-method)))
(println (<! (async-method)))
(println (<! (async-method)))
(println "finished!")
)
)
Может есть путь покрасивше?
Может макрос какой уже готовый чтобы не дублировать такую красоту?Уж много посторяется этот блок, что на водит на мысль, что есть либо макрос, либо я не правильно делаю.
(let[port (chan)]
(go
;; (<! (do-it))
(put! port "")
)
port
)
alts!
@dragoncube: а можно поподробнее? полностью кейс?
а так вообще круто получается например (d/chain (apply d/zip (map #(…some i/o here..) (range 100)) fn-read fn-dosomething)
fn как раз callback, что не хочется, не на самом деле все работает прекрасно, можно сделать макрос, который будет выклядеть где-то так
(sync
(<! (do-it))
“finished”
)
разворачиваясь в
(let[port (chan)]
(go
(<! (do-it))
(>! port "finished")
)
port
)
в контексте Clojure, где код - это AST, макросы - это чистые AST-шаблоны для создания DSL.