Fork me on GitHub
#clojure-russia
<
2017-04-26
>
niquola04:04:04

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

niquola04:04:16

+ у кто-нибудь успешно metadata driven формы сделать получилось?

niquola04:04:28

Я кстати обещал тестовое задание - let it be - формбилдер основанный на json-schema for re-frame ;)

a.espolov09:04:51

так может и пример схемы есть?

niquola14:04:42

Сча пришлю

niquola14:04:44

Но они могут быть сложновато - начни с примитивных

arsenguzhva05:04:46

Тут вчера рекламка промелькнула " стек datomic +(clojure back) + clojurescript (front)" Меня тоже этот стек интересует. Есть ли на Гитхабе пример небольшого проекта в котором бы все это было красиво и правильно связано между собой?

rustam.gilaztdinov06:04:57

можно посмотреть на luminus http://www.luminusweb.net/docs/profiles.md -- вот тут есть примеры темплейтов с кложаскриптом и датомиком, например Но это все темплейты, они игрушечные

mike_ananev18:04:13

@arsenguzhva вот пример коммерческого продукта написанного на этом стеке: https://www.youtube.com/watch?v=RI6KrCzXDjo

mike_ananev18:04:34

там под капотом datomic, clojure

arsenguzhva03:04:33

спасибо

dragoncube05:04:20

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

dragoncube05:04:27

валидации там и прочее

dragoncube05:04:44

а вот вьюхи для них часто специфичные сильно

dragoncube05:04:43

поэтому мы вот так и делаем как @kishanov показал - есть отдельно описание форм данными и отдельно вьюха которая составляется из набора примитивов/контролов

dragoncube05:04:43

но у нас правда не сотня форм, а пару десятков может

dragoncube05:04:01

@nicola вот твой пример - это довольно простые формы поддерживаются - максимум - другим виджетом поле рендеришь

niquola05:04:17

Согласен

niquola05:04:18

У нас на бэкенде есть метадата, в частности json-schema - вот и хочется ее переиспользовать

dragoncube05:04:57

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

dragoncube05:04:17

а вот вьюхи - это ортогональная проблема

dragoncube05:04:00

или выбираешь что все формы простые и тогда можно общий код рендеринга или писать кастомные вьюхи

niquola05:04:06

Хочется и то и другое ;)

niquola05:04:10

Для простых - общий, для сложных хэндкрафт и чтоб ещё смешивать можно было ;)

dragoncube05:04:06

кстати и с валидацией тоже есть проблемы

dragoncube05:04:23

далеко не все валидации можно уложить в json схему

dragoncube05:04:35

например зависимые поля

niquola05:04:01

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

dragoncube05:04:05

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

dragoncube05:04:43

но у нас все вьюхи специфичные поэтому мы так не делаем 🙂

ul12:04:29

дорогой чатик, у кого-нибудь получилось завести эту шарманку https://anmonteiro.com/2017/03/requiring-node-js-modules-from-clojurescript-namespaces/ ?

ul12:04:06

лень создавать cljsjs пакет, хочу попробовать жить на острие 😃 но что-то не подхватывает cljs эти зависимости

savelichalex12:04:29

у меня не получилось, но я пробовал до того момента как closure compiler с фиксом зарелизили

ul12:04:10

жаль-то как, а так вкусно выглядит

savelichalex12:04:53

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

misha12:04:13

а разве уже релиз был? эта штука из мастера только работала недели 4 назад

savelichalex12:04:00

я вот как раз с мастера и пробовал. но с того момента релиз был и в closure compiler тоже

ul13:04:15

так я попробовал из последней версии, которая типа поддерживает, но то ли руки кривые, то ли не работает ещё

ul13:04:03

я, правда не этот пакет и не напрямую делал, а писал npm-deps в cljsbuild конфиг

ul13:04:10

но он даже не почесался вызвать npm

ul13:04:50

то ли cljsbuild не все compiler опции дальше передаёт, то ли компилятор не понял, что я от него хочу

savelichalex13:04:42

не, у меня cljsbuild понял, мож ты не в то место впихнул) там потом при резолве депенденси ошибка какая то была

ul13:04:10

так у меня тоже типа "понял" в том смысле, что не выдал ошибки при компиляции

ul13:04:37

но он не зафетчил пакет npm'ом и при попытке сделать require на пакет, сказал, что такого нет

savelichalex13:04:17

а у меня понял что начал npm install делать

savelichalex13:04:49

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

ul13:04:23

ладно, подождём пока вылизут

ul13:04:39

пока мы разговаривали, я уже и cljsjs пакет сделал

ul13:04:53

не так страшно оказалось

potapenko13:04:51

о! прикольно, я раньше делал через (def express (node/require "express"))

potapenko13:04:09

нужно почитать

potapenko13:04:19

Вернулся к react native опять, смотрел что с роутреами - обнаружил https://reactnavigation.org Все в одном! И табы и drawer, прощай react-native-simple-router... похоже есть лучше от создателей RN. Еще интересно, что сайт c документацией сделан с применениме react-nativigation... Нужно порыть этот react-native-for-web….

savelichalex14:04:28

react-navigation вообще офигенен

savelichalex14:04:47

там есть конечно огрехи в доке, но все равно он крут

misha14:04:10

@savelichalex скоро тоже до него руки дойдут. там много интеропа/стейта из js?

savelichalex14:04:51

смотря что хочешь, я не стал парится, сделал пару врапперов и все. ни в каком стэйти ниче не храню

misha14:04:23

хочу после перезапуска аппликейшена перематывать на экран, на котором закончилась предыдущая сессия, при этом восстановив весь стек до этого экрана. типа если закончил на 5 шагу визарда в третей табе - восстановить 5 шаг третей табы так, чтобы кнопочка назад/отмена(или чо там) - отмотала с анимацией на 4 шаг, а не упёрлась в пустоту

misha14:04:10

+, естественно, запомнить где ты в первой табе находишься, когда с нее на 3 переключился (и ввязался визард проходить)

savelichalex14:04:31

ну там есть у него с редаксом завязка, значит и стэйт есть. может его и можно как то сохранить

potapenko14:04:54

@savelichalex смотреть сериалы и изучать английский - хорошая идея 😄

savelichalex14:04:26

ну так а то! только доделать все не могу 😄

potapenko15:04:24

@savelichalex я тоже в этом направлении отметился - http://playphrase.me

savelichalex15:04:42

@potapenko кул! интересная идея :thinking_face: 😄

savelichalex15:04:29

а как ты фразы из текста доставал?

savelichalex15:04:44

я все не могу придумать как парсить субтитры чтобы фразы понимать

potapenko15:04:49

фразы? ну тогда я в NLP мало понимал, когда делал. сам писал

potapenko15:04:55

а так лучше какую NLP либу

potapenko15:04:02

чтобы приложения выдирать

savelichalex15:04:34

у меня просто без бэка, а на клиент че то не охота здоровую либу тащить)

potapenko15:04:13

npm есть либа

potapenko15:04:16

на ноде

potapenko15:04:36

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

potapenko15:04:24

лучше ты сам базу субтитров создай, и загружай на клиент уже все готовое, с json-ом каким с фразами

savelichalex15:04:09

ну я так и понял уже что просто эту проблему не решить)

savelichalex15:04:29

регекспами это конечно сильно))

potapenko15:04:20

ну speach recoginizing еще

potapenko15:04:27

много нужной информации дает

potapenko15:04:29

хочу переписать с deep learning, чтбы обучить сетку, где фраза. звук+текст.

potapenko15:04:15

subtitles можно искать/брать тут - лучшее что видел http://www.quodb.com

savelichalex15:04:52

о, за базу отдельное спасибо! 👍

savelichalex15:04:26

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

savelichalex15:04:41

а обычные corpus не очень подходят имхо

potapenko15:04:19

ну да, обучающие данные всегда проблема

savelichalex15:04:09

заофтопили тут все)

kgofhedgehogs15:04:55

О чем он в конце сказал? "Tail call recursion невозможен"?

kgofhedgehogs15:04:27

Я плохо разбираюсь, но recur тогда что?

kgofhedgehogs15:04:50

Разве recur как раз таки не делает goto?

savelichalex15:04:58

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

kgofhedgehogs16:04:34

Типа если я не recur сделаю, а просто сделаю рекурсивный вызов в хвостовой позиции, то jvm goto не сделает?

kgofhedgehogs16:04:02

Так или иначе, слабая претензия

fmnoise16:04:05

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

fmnoise16:04:16

стек поди не резиновый

jetmind16:04:09

Так прелесть хвостовой рекурсии как раз в том что стек не растет если есть tail call optimization. Здесь как раз об этом кмк

seryh17:04:44

loop recur имеет оптимизацию хвостовой рекурсии, на уровне ядра кложи

seryh17:04:40

жить можно

mike_ananev18:04:31

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

artemyarulin18:04:31

блин, ну это не круто(( Если в ядре - юзали бы все, а так опционально и не взлетит, грусть печаль

misha18:04:04

да это найс

misha18:04:18

особенно:

this is a first step towards increased support for leveraging dependencies within Clojure.

misha18:04:42

скоро Рич таки code demo покажет

misha18:04:58

@artemyarulin какое тебе дело до всех? troll

mike_ananev18:04:17

судя по треду они начали применять идеи доклада Spec-ulation на практике

mike_ananev18:04:42

о, уже и артефакт "испекли" [org.clojure/spec.alpha "0.1.94"]

artemyarulin19:04:57

если оно везде = все либы будут ее юзать. Если она не в ядре - то половина забьет (я сто раз подумаю добавить завимиость в либу), вторая половина будет юзать всякие схемы и прочие призматики и полтора человека спеку причем разных версий. Вот в моей нелюбимей гошечке сделали каналы в ядре - все (все!) либы их юзают, вот цветет и пахнет.

artemyarulin19:04:23

ну и да если у меня спека в приложении ессно я хочу чтобы все либы были с ней

misha19:04:47

там написано, что кложа скоро сама задепендится на спеку, как та успокоится немного

misha19:04:49

ну и кто хочет спеку использовать - использует несмотря на альфу уже. а кто нет – может и со впаяной никогда не начнет

rmuslimov20:04:18

спека новая концепция и должна пройти какую то “обкатку” . Вообще странно что они сразу ее в ядро запилили, если завтра ктонибудь придумает “суперспеку” легче будет на нее переехать, если она вынесена все-таки. Так что по мне так оно, отдельно логичнее

kishanov20:04:54

“слабоумие и отвага” издавна было девизом всех софтверных людей 🙂

misha20:04:17

@rmuslimov нужно было подхачить clojure.core чтобы спека заработала, потому она не как либа началась