Fork me on GitHub
#clojure-russia
<
2015-11-30
>
maxp07:11:06

про enlive было бы интересно

niquola07:11:43

@jetzajac ну как? Что Дэвид?

Kira Sotnikov07:11:33

а это сильная наркомания, пилить кложескрипт для вордпресса?

a.espolov07:11:53

какая разница на чем бекенд?

a.espolov07:11:19

правда с om.next удаленная синхронизация из коробки работать не будет

seryh07:11:08

наткнулся на клевый курс по clojure, .... на болгарском >_< https://github.com/fmi/clojure-lectures/tree/master/lectures

seryh07:11:20

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

rm07:11:01

я недавно датасет с автомобильными номерами искал. нашел на хорватском -- там вообще транслитированный русский практически

Kira Sotnikov07:11:22

a.espolov: что за удаленная синхронизация?

Kira Sotnikov07:11:31

в смысле что на лету подгружаться не будет без ф5?

Kira Sotnikov07:11:03

a.espolov: интересны просто подводные грабли

Kira Sotnikov07:11:11

умом то я понимаю что пофиг на чем бэкенд

a.espolov07:11:39

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

a.espolov07:11:52

по сути у тебя получается на сервере один ендпоит

a.espolov07:11:18

“/api" которые обрабтывает все запросы из приложения

a.espolov07:11:11

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

a.espolov07:11:26

которые в свою очередь тоже делятся на два типа удаленные и локальные

a.espolov07:11:32

immutant не хочет работать с buddy(

artemyarulin08:11:34

для om-next конечно датомик идеальный бек, ибо развернул и все Но на самом деле как Нолен завещал om-next backend agnostic, т.е. по дефолту он не знает ничего о вашем беке. Это может быть рест с кучей эндпоинтов, это может быть прости господи wsdl/soap, может GraphQL, может вообще кастомный класс на ObjC (это если вы пишете на React Native под мобильные) Этот враппер над беком нужно написать руками, в терминах ома - парсер запросов. К сожалению это повышает порог вхождения в ом - хелло ворлд с беком просто так за 5 минут не написать. Но после это офигенный кайф и мега контроль - кастомный кеш, несколько беков разных типов, оптимизация запросов, debounce and who knows what

artemyarulin08:11:38

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

ul08:11:07

«после это офигенный кайф и мега контроль» — это впечатление сформировалось после написания приложения, или после речей Дэвида?

a.espolov08:11:55

ul: там есть подводные камни как и везде, например "оптимистичное обновление"

a.espolov08:11:33

мне вот не понятно как быть, когда операция выполняемая на back-end может и не выполнится например

ul08:11:22

тогда придёт новое состояние

ul08:11:29

соответствующее невыполненной операции

ul08:11:37

и надо просто привести клиент в соответствие с ним

a.espolov08:11:40

ога придет

a.espolov08:11:48

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

artemyarulin08:11:25

@ul: Я тока вторую неделю с омом, поэтому да, практики не много. Но мой кейс как-раз не очень стандартный - iOS UI + два как бы “бека" - один ObjC legacy class, другой - десяток функций на CLJS и все это работает вместе

ul08:11:34

это уже UX вопрос, а не технологический. можно показать пользователю интерфейс, на котором его операция выполнилась, но крутить какой-нибудь спиннер, пока не придёт подтверждение

a.espolov08:11:37

хотя на этот случай sse или websocket’ы решат проблему

ul08:11:43

или другим образом ему сообщать о том, что всё зыбко))))

a.espolov09:11:39

ul: я правильно понимаю, что ты юзаешь/просто смотрел/игрался с om.next? (нужное подчеркнуть)

ul09:11:18

нет, я сейчас говорю про оптимистическое обновление вообще. я его использовал со старым омом

ul09:11:24

и не только омом

ul09:11:42

а до om.next руки пока не доходят

ul09:11:55

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

a.espolov09:11:25

мне вот не понятен один момент с cider-nrepl Есть приложение использую immutant - что-то меняю в коде сразу подхватывается реплом, если юзаю http-kit ты куй железо пока горячо или ребутай репл

ul09:11:57

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

ul09:11:06

а к http-kit надо прикручивать

ul09:11:21

есть вроде миддлвар для этого, если ты рингом пользуешься

ul09:11:04

а, так оно уже в ринге есть

ul09:11:16

иммутант его сам подключает в дев-режиме

ul09:11:25

а в остальных случаях надо руками

a.espolov09:11:27

самое смешное, что я добавляю reload middleware

a.espolov09:11:03

и еще момент. Объявляю в одном ns defrecord и пытаюсь импортировать его в другой ns. При запуске репл ругает не могу скомпилить. пересохряняю ns в котором юзаю defrecord и все ок становится

a.espolov09:11:17

ul: а тебе сессии не приходилось юзать с immutant?

ul09:11:25

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

ul09:11:45

а в репле стал делать рестарт всей системы руками

a.espolov09:11:58

я когда пытаюсь что-то в сессию запихать ловлю exception(

ul09:11:01

из кармина редис сессион стор нормально работал

a.espolov09:11:25

No implementation of method: :render of protocol: #'compojure.response/Renderable found for class: immutant.web.internal.ring.LazyMap

a.espolov09:11:22

ul: удобнее разбить проект на два отдельных или пилить в одном back и front?

a.espolov09:11:39

во втором варианте приходится переключать репл

ul09:11:42

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

ul09:11:53

тогда он пытается результат этой функции отрендреить

a.espolov09:11:54

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

ul09:11:03

и у него не получается

ul09:11:41

надо, чтобы хэндлер последней формой имел респонс

ul09:11:05

если респонс не нужен, можно nil попробовать

a.espolov09:11:43

вот спасибо)

a.espolov09:11:25

только теперь значение для ключа :session теряется(

ul09:11:32

угу, оно ж иммутабельное, так что надо возвращать обновлёный ринг мэп в ответе по-любому, я фигню про nil написал

ul09:11:45

а что за код конкретно ломается?

seryh11:11:00

а есть пример куда бы красиво встал core.async? раскурил его, а куда приткнуть непонятно ) все асинхронные задачи неплохо и более лаконично future решает

oxgrouby11:11:15

банальный чатик -- каждый клиент -- go-loop. Юзая фьючеры так не выйдет если клиентов больше чем размер тредпулла

seryh11:11:41

не выйдет, в плане что начнутся миллисекундные блокировки? при большом колличестве пользователей чатика? с которыми не будет справлятся колличество доступных тредов (CPU cores + 2)

oxgrouby11:11:10

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

seryh11:11:40

ну в любом случае клево что go работает независимо от тредпула как то упустил эту инфу

artemyarulin13:11:56

Никто не смотрел вот это? http://www.grpc.io

artemyarulin13:11:27

в контекте именно кложуры - там есть байндинги на жаву, но хз как оно с кложурой в итоге будет

niquola15:11:16

записываемся на встречу, если Дэвид не придет - поплывем в свободном плавании

prepor15:11:31

> Никто не смотрел вот это? http://www.grpc.io оно дико сырое еще пару месяцев назад было

niquola15:11:04

@prepor: тебе отдельное приглашение 😉

prepor15:11:39

@nicola: я сегодня планировал пивка выпить в честь др )

niquola15:11:00

своего

prepor15:11:46

угумс

prepor15:11:37

> Объявляю в одном ns defrecord и пытаюсь импортировать его в другой ns. При запуске репл ругает не могу скомпилить. пересохряняю ns в котором юзаю defrecord и все ок становится почему при запуске у тебя репл пытается его скомпилить? у тебя source-paths правильно прописаны? clojure.tools.namespace.repl/refresh норм все релоадит?

niquola15:11:09

@prepor: 🎂 всеравнозаходи

a.espolov15:11:01

@prepor: да пытается скомпилить. source-paths верно прописаны

a.espolov15:11:15

clojure.tools.namespace.repl/refresh норм все релоадит? - а как это проверить?

prepor15:11:22

вызвать? )

prepor15:11:43

а как ты пытаешься reloadable workflow сделать без clojure.tools.namespace.repl?

a.espolov15:11:46

блин ну прям ща я тупо перенес в тот же неймспейс

prepor15:11:47

руками релоадишь?

a.espolov15:11:58

вообще да

a.espolov15:11:05

cider-refresh

turtle16:11:57

Всем привет, господа.

virvar16:11:27

Привет!

a.espolov17:11:02

хочу хранить статику на s3, backend отдельно даже не на amazon. Не пойму как это все подключить к одному домену и включить использовании ssl. У s3 по идеи свой сертификат, а как быть с бекендом?

a.espolov17:11:20

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

Kira Sotnikov18:11:06

a.espolov: s3 не умеет ssl

Kira Sotnikov18:11:14

тебе нужен cloudfront поверх s3

Kira Sotnikov18:11:24

тгда там можно и домен и ссл

Kira Sotnikov18:11:58

prepor: с днем рождения. simple_smile

artemyarulin18:11:17

https://www.linux.org.ru/news/opensource/12132450 может ну его этот JVM? LLVM ждет! simple_smile

kronos_vano18:11:27

для соотв зоны

Kira Sotnikov18:11:03

kronos_vano: ну вот у меня s3 бакет как фэйловер запись в днс, и по ссл оно не умеет 😞

Kira Sotnikov18:11:06

на свой адрес

kronos_vano18:11:38

да, так работать не будет

niquola18:11:20

20 минутная готовность

p.lebedev18:11:09

На правах рекламы! В тот чт ребята из http://hangops.ru сообщества http://webmeetups.net/mgroups/18 такую резонансную тему подняли http://webmeetups.net/meetups/87 =)) Даже меня немного забрызгало =))

turtle18:11:21

А куда соединяться то?

niquola18:11:02

через 10 мин начнем

turtle18:11:34

Ну страничку это открыл. Что нужно будет дальше?

turtle18:11:39

ФОрма одежды свободная? simple_smile

ul19:11:09

а в хэнгауте 12 человек ограничение, да?

Kira Sotnikov19:11:36

или даже 8

p.lebedev19:11:31

в гугловском 10 - есть сейчас слоты - заходите

Kira Sotnikov19:11:00

p.lebedev: я бы с удовольствием, но только безполезно займу слот )

Kira Sotnikov19:11:07

такое ощущение что чем больше у тебя фоловеров, тем быстрее приходят новые

Kira Sotnikov19:11:43

по 10 человек в день ._.

ul20:11:36

к вопросу автоматизации рефакторинга, ставил простенький эксперимент http://ul.mantike.pro/automating-clojure-refactor-with-rewrite-clj/

artemyarulin20:11:05

@a.espolov: om-next,ня. Меню тока не закрывается автоматом когда что-нить выбираешь

artemyarulin20:11:38

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

p.lebedev20:11:31

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

a.espolov20:11:28

Это ещё прототип)

dottedmag20:11:45

Про введение новых людей в курс дела: очень помогает иметь в команде человека с плохой памятью, или такого, задача которого состоит в том, чтобы симулировать плохую память и приставать ко всем. Очень быстро отучает остальных от того, чтобы делать всякие крайне заумные и плохо объясняемые вещи, код становится на глазах проще.

Kira Sotnikov20:11:15

а чо Нолан был?

thickprogrammer20:11:54

всем привет. можете подсказать - как емакс научить реплу с cljs ?

niquola20:11:04

@dottedmag вопросы вообще мощный инструмент

Kira Sotnikov20:11:28

а что cider не умеет cljs репл?

Kira Sotnikov20:11:47

dottedmag: задавать глупые вопросы это мое любимое

turtle20:11:05

Умеет, но через дебаг браузера какого-нибудь.

turtle20:11:46

В общем, я не помню точно, но что-то типа cljs cider repl надо искать.

artemyarulin20:11:03

дак figwheel + nrepl же

Kira Sotnikov20:11:12

для браузера фигвил же

thickprogrammer20:11:17

у меня не умеет ) - как настроить ? вообще какие варианты есть ? figwheel - это не простой релоад ?

thickprogrammer20:11:21

lein figwheel запускаю , cider connect подключаю, но не эвалится ничего

artemyarulin20:11:09

фигвил надо настроить чутка - почитай в ридми или в вики у проекта

thickprogrammer20:11:54

я это уже читаю второй день , но что-то никак. weasel - это для чего ? чем отличается от figwheel ? clojure .browser.repl ?

turtle20:11:02

А что там с мобильными приложениями и кложурой?

artemyarulin20:11:14

оно работает simple_smile

turtle20:11:26

Ну в смысле, что почитать?

artemyarulin20:11:03

@thickprogrammer: я все еще на старом фигвиле, он там поменял много всего. Проще поискать какой lein темплейт готовый уже с фигвилом настроенным

thickprogrammer20:11:12

делаю - lein new reagent test

thickprogrammer20:11:53

подключаюсь cider-connect localhost 7002

thickprogrammer20:11:26

пытаюсь эвалить ns - пишет could not locate reagent/core__init.class or reagent/core.clj on classpath

artemyarulin20:11:01

дак а просто (+ 2 2) работает?

artemyarulin20:11:43

и потом проверь что репл именно cljs - (.log js/console (+ 2 2))

thickprogrammer20:11:58

не работает

artemyarulin20:11:07

не работет и просто (+ 2 2)?

artemyarulin20:11:47

т.е. репл есть в котором вообще ничего не эвалится?

thickprogrammer20:11:59

(+ 2 2 ) работает

artemyarulin20:11:37

аа, т.е. ты не перешел в cljs репл просто. Я хз как в фигвиле последнем но я юзаю вот так: (use 'figwheel-sidecar.repl-api)(cljs-repl)

artemyarulin20:11:10

это переведет репл сессию в cljs repl

thickprogrammer20:11:36

сейчас попробую - это в репле напечатать?

artemyarulin20:11:22

ну в емаксе который репл

dottedmag20:11:09

Господа, а где бы почитать, как это вообще работает? Вот я не понимаю, что значит "cljs REPL внутри clj REPL"

thickprogrammer20:11:34

да заработало , спасибо )

dottedmag20:11:43

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

artemyarulin20:11:34

могу найти статью как вообще repl evaluation работает

dottedmag20:11:40

@artemyarulin: Пожалуйста

artemyarulin20:11:48

http://blog.fikesfarm.com/posts/2015-10-07-ambly-require-reload.html соврал) В этой статье акцент на репле в iOS приложение, с JVM по другому будет. Сорри

dottedmag20:11:14

@artemyarulin: Всё равно спасибо

thickprogrammer20:11:32

только не работает автообновление страницы - только при сохранении файла

artemyarulin20:11:32

а хотя неа - да, там нормально вроде, про JS вообще

Kira Sotnikov20:11:34

всем parens of the dead

artemyarulin21:11:05

@thickprogrammer: ты про фигвил? Дак он так и работает - когда сохраняешь, он обновляет. + у тебя есть возможность все менять в репле самом, т.е. функции переопределять С-c C-e и все такое

thickprogrammer21:11:29

я видел что репл может обновлять браузер - т.е. текст меняешь в функции - браузер отображает после эвала

artemyarulin21:11:00

дак он и умеет - попробуй заэваль (.log js/console “hello”)

Kira Sotnikov21:11:07

dottedmag: а какой у тебя ник в твиторе?

dottedmag21:11:17

@lowl4tency: Ты не поверишь

artemyarulin21:11:19

т.е. весь доступ к браузеру

dottedmag21:11:36

@lowl4tency: Такой и есть

Kira Sotnikov21:11:54

ага, нашел уже)

ul21:11:00

знатоки спейсмакса, скажите, как в нём отменить текущее действие

thickprogrammer21:11:04

да, похоже на правду. - наверное нужно про реагент почитать - почему он не хочет перерендеривать )

ul21:11:06

как в виме эскейп

ul21:11:16

и как в обычном емаксе C-g вроде

Kira Sotnikov21:11:46

в моем имаксе так)

ul21:11:00

я неправильно написал

ul21:11:03

не дейтвие

ul21:11:10

а текщую комбинацию клавиш

ul21:11:34

в спейсмаксе видимо перебинджено

ul21:11:37

не работает

thickprogrammer21:11:43

чтоза спейсмакс?

artemyarulin21:11:54

емакс для ленивых:)

Kira Sotnikov21:11:56

thickprogrammer: это адовая смесь вима и имакса

Kira Sotnikov21:11:04

выращено в лаборатории

Kira Sotnikov21:11:09

для вимеров которым лень осилить имакс

artemyarulin21:11:24

для тех кто боится пилить свой ламповый конфиг с нуля:)

Kira Sotnikov21:11:26

ну или для вимеров у которых не хватает пальцев

ul21:11:46

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

Kira Sotnikov21:11:48

artemyarulin: так есть же куча преднастроенных

thickprogrammer21:11:52

а, мне это не надо - я вим и емакс одинаково хорошо не знаю )

Kira Sotnikov21:11:07

thickprogrammer: тогда тсавь обычный имакс

thickprogrammer21:11:27

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

Kira Sotnikov21:11:51

thickprogrammer: возьми кложа для брейв энд тру

Kira Sotnikov21:11:01

там книжка по кложе начинается с конфига имакса

artemyarulin21:11:04

да ну, емакс надо брать голыми - месяц трахаться с ним, но зато он станет таким родным после всего это что ты никогда с него не слезешь и будешь юзать для всего. Ну так было со мной по крайней мере simple_smile

Kira Sotnikov21:11:27

artemyarulin: я предпочитаю девочек ._.

Kira Sotnikov21:11:39

с имаксом пусть ибется батсов

ul21:11:39

и эти люди говорят мне что статически типизированные языки слишком замороченные

thickprogrammer21:11:03

кложа для брейв энд тру - там ссылку на конфиг емакса уже удалили

Kira Sotnikov21:11:07

thickprogrammer: можешь сграбить мой конфиг с гитхаба

Kira Sotnikov21:11:29

он простой как три рубля, стартер кит и пара биндингов

Kira Sotnikov21:11:06

ну темка, шрифты и модули всякие для всяких джисонов

thickprogrammer21:11:11

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

thickprogrammer21:11:45

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

Kira Sotnikov21:11:47

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

Kira Sotnikov21:11:04

у нас корпоративный конфиг имакса 😄

Kira Sotnikov21:11:38

почти религия

artemyarulin21:11:55

а потом спустя какое-то время когда конфиг станет неподъемным - можно объявить http://www.emacswiki.org/emacs/DotEmacsBankruptcy

thickprogrammer21:11:48

я пытался идею с курсивом настроить - но пользоваться еще хуже чем емаксом получается

Kira Sotnikov21:11:49

artemyarulin: можно начать проходить заново и посмотреть другую концовку

artemyarulin21:11:07

а чо кста нетак с курсивом?

artemyarulin21:11:17

не видел его ниразу если честно

ul21:11:24

отлично работает курсив

dottedmag21:11:33

А толпы индусов так и продолжают спокойно кодить в Eclipse на жаве.

artemyarulin21:11:48

индусы в студии сидят

thickprogrammer21:11:06

да ладно все индусы в идее сидят

Kira Sotnikov21:11:21

в рашке аутсорс стал дешевле чем в индии

thickprogrammer21:11:30

у них корп лицензия - одна на всех

Kira Sotnikov21:11:31

так что они профи, а мы обезьянки )

dottedmag21:11:50

А кто говорит про рашку?

Kira Sotnikov21:11:04

кхм, в заголовке написано Russia

dottedmag21:11:21

ну, я до сих пор недоумеваю, почему не "russian"

artemyarulin21:11:20

надо переименовать в [ru-RU]clojure, сразу понятно что локаль

dottedmag21:11:50

Я понимаю, почему есть #C061XGG1W -- в мире знающих норвежский за пределами Норвегии чуть больше, чем нисколько.

artemyarulin21:11:58

кложура затесалась тут)

dottedmag21:11:42

@thickprogrammer: -ru / -rus / -russian

Kira Sotnikov21:11:11

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

dottedmag21:11:03

Кстати, русскоязычное коммунити в Слаке - самое обширное. #C053WH4AL 73 члена, #C067K2KFD 62, #C0544SK9H 59

Kira Sotnikov21:11:44

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

Kira Sotnikov21:11:04

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