This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2015-12-25
Channels
> gorilla repl видел, да. Местами прикольно, местами глючит (не исключаю, что проблема у меня в руках).
ты вынужден писать в браузере, а он тебе в итоге сгенерит файлик, чтобы ты мог его потом еще раз открыть
Ну хотя да, репл покрывает наверное все эти кейсы - не проблема ж сделать how-to.clj где будут всякие хелперы и примеры с доками да. Затупил
мне бы больше понравилось что-нибудь такое: 1. редактор, в нем файлы с кодом и файл, который будет "notebook", с пояснениями и прочим. 2. браузер, в нем результат рендеринга этого самого ноутбука. 3. figwheel для обновления результатов в ноубуке 4. eval для обновления в кложе 5. какой-нибудь легкий способ пушить данные с сервера на клиент, server push в вебсокетах подойдет. Написал и понял, что по идее, это все можно слепить уже прямо сейчас.
ога, все инструменты уже готовы
меж тем, я понял, как паринфер портит формы. У меня был косяк в отступах и он взял и расставил скобки по отступам. После чего я полчаса офигевал, где же у меня все сломалось
ха. Мне стыдно признаться но у меня все руки не дойдут до paredit, так что я как лох руками все. Надо заняться на новогодних каникулах
усилий на paredit/smartparens надо не так много, как кажется. выделить часа полтора. вложения окупаются в течении одного вечера
да я знаю, корю себя за это, но как обычно - “Нам некогда оптимизировать процесс - у нас слишком много работы”
а кста какой из них лучше? paredit или smartparens?
ок - позырю тада оба
да я знаю-знаю, обратно никто не возвращается ага
быстрый вопрос - зарелизил либу на CLJS, не могу использовать ее в другом проекте - кричит что неймспейс не найдет. Проблема скорее всего что у меня в либе
/Users/fessguid/Projects/ktoa/src
├── core.cljs
└── repl.cljs
а нужно чтоб в src была еще одна папка (= root namespace ktoa в этом случае) в все файлы уже под ней, так?@artemyarulin мотиватор: без paredit/smartparen нельзя считать себя clojure/lisp программистом ;)
ну все-все, я уже сказал что мне стыдно! В выходные посмотрю!
а как настроить чтобы с cljs работал? запускаю отдельно - lein figwhee. и получается два разных репла - один из редактора, другой в консоли открыт. куда копать пока не врубаюсь
figwheel умеет nrepl. Я обычно его открываю, а уж из редактора просто к нреплю конекаюсь
типа lein repl
-> (use 'figwheel-sidecar.repl-api)(start-figwheel!)
дальше cider-connect
чтоб репл открыть ну и в нем уже (use 'figwheel-sidecar.repl-api)(cljs-repl)
а два можно использовать? clojure-овский и cljs-вский
эм, а не знаю - я тока на cljs нынче пишу
@alexey.badenkov там с этим проблема, я два emacsa запускаю
а в случае с двумя емаксами - хот релоад работает в cljs когда устанавливаешь какой нибудь пакет для cljs?
хорошо
а кста никто не работает с фигвилом из нескольких клиентов сразу?
авторелоад работает вроде нормально, но вот нрепл и евал из емакса цепляется походу к последнему браузеру, а охота чтоб можно было поменять. Никто не знает?
ну это будет прям очень круто да. Но хотяб иметь возможность выбрать в каком из клиентов выполняется евал ага
@alexey.badenkov: @nicola В Emacs с этим уже давно нет проблем - ты можешь одновременно иметь два репла
@nicola: А тех, кто на Cursive с Emacs перешел, в хэнгауте же не банят? Я уже было прикрутил нормальную навигацию для cljs в Emacs, но все равно как-то с Cursive проще, особенно если есть еще код на java. А если честно, я устал настраивать Emacs 😸
не верю глазам своим http://habrahabr.ru/post/274057/ сколько минусов к комментам к Go статье
Ну вот друган тока сегодня скинул - groupBy в го: https://github.com/jbenet/go-multiaddr-net/blob/master/Godeps/_workspace/src/github.com/anacrolix/missinggo/itertools/groupby.go прекрастно ящетаю
не удивлюсь если следующий этап плана адептов го, это вернуть времена когда зарплату платили за кол-во строчек кода
Кстати, о редакторах, но не для Clojure. Кто-нибудь на Rust пишет, что используете? Rust-mode в Emacs?
про го ага - читал что это пхп нашего времени
про раст - я пару недель игрался, писал в rust-mode ага
вот эта статься помню понравилась http://bassam.co/emacs/2015/08/24/rust-with-emacs/ но лень было повторять
Классно! Статья вышла позже, чем я начал разбираться с Rust, я совсем по-простому работал, спасибо!
У Go есть одна потенциальная фича - нет настроек GC + из коробки работа с большим хипом. В рекламных статьях же никто не приводит такого изврата типа как выше, многие и покупаются.
народ, если кому не сложно/не жалко, хотелось бы глянуть примеры ваших конфигов спейсмакса/емакса, интересуют key binding в особенности для smartparens и clj-refactor + а вы настраиваете себе обновление репла (аля cider-refresh на сохранение ckj файла), не могу определиться удобно это или нет...
@abtv: Да мне кажется туда переходит народ с того же пхп да ноды в основном, ясен фиг большой прогресс по скорости и удобству разработки
Те, кто на ноде пишут - не перейдут, мне кажется, им же тогда совсем в другом стиле писать придется
ну го это конечно далеко не пример для подражания в обработке ошибок, одно говно на другое менять
вот очень надеюсь что раст взлетит. Ну и фреге чтоб коллег пугать
ерланг вот вернулся можно сказать с эликсиром, хаскель через фреге. Вот надеюсь что кто-нить логическое программирование вернет - кой-нить JProlog для JVM/LLVM, вот заживем!
@andfadeev я дефолтами пользуюсь
я вот чет обновил тут спейсмакс и у меня вообще исчезли keybinding на работу с лиспом, вроде раньше было SPC - k, подумал пришло настроить както удобно под себя
@artemyarulin: на расте очень тяжело писать, очень медленно
очень жаль, что у камла нет момента, а f# под .нет, они всë-таки сильно проще и хаскеля, и раста
@asolovyov: Ну я бы не сказал что прям ТАК тяжело и медленно. Он системный конечно ага, деталей куда больше, но не так все плохо
вот кста наткнулся на классную статью про парралелизм в расте http://smallcultfollowing.com/babysteps/blog/2015/12/18/rayon-data-parallelism-in-rust/
@asolovyov: ну да, это у меня уже наболело
@prepor: ок, переформулирую, может подскажешь, как назвать эту ситуацию. Есть приложение под JVM, которое получает данные от приложения на C++ (устройство), обрабатывает их и отсылает ответ, после чего приложение на C++ посылает новые данные. Средняя задержка - норм, но если посмотреть на разброс значений этой задержки, то получается, что где-то раз в минуту (зависит от объема памяти под JVM) приложение на C++ ожидает значительно больше, чем обычно, а специфика приложения такова, что я не могу забуферизовать это на стороне приложения C++, т.к. требуется ответ за определенное время и если его нет, то данные уже устарели. В таких ситуациях часто помогает Unsafe или DirectBuffer, но это достаточно низкоуровнево даже по сравнению с C++: нужно самому реализовывать все структуры данных. Наверняка есть какие-то библиотеки, которые предоставляют похожий функционал, но только это все равно потребует дополнительной работы. Это в принципе решаемо. Проблема в другом - ни один JVM язык не предоставит таких возможностей по тюнингу производительности, как низкоуровневый язык. Еще одна проблема - представь, что у тебя очень много объектов в памяти, больше, чем поместится в 32 Гб. Сейчас таких приложений относительно мало, но пройдет лет 5-7 и эти 32 Гб будут у среднего по размеру приложения. Что возвращает нас к проблеме №1: в этом случае нужно все приложение писать в стиле Unsafe или с использованием оберток над ним. Либо появится другой тип сборщика мусора, который предоставит какие-то гарантии на максимальную задержку. Типа того, что делает Azul, но для широких масс, т.е. задаром.