Fork me on GitHub
#clojure-russia
<
2016-01-26
>
artemyarulin05:01:25

@rmuslimov: если датомик то конечно проще всего simple_smile Можно вон как @a.espolov делает - переиспользовать парсер запросов с клиента на сервере. Я ом-некст для мобайла юзаю, у меня один из беков по сути класс на Objective-C, поэтому свой парсер приводящий запросы к рест подобному виду action(param=value param1=value), это не так сложно на самом деле

rmuslimov05:01:29

@artemyarulin: ok, спасибо

artemyarulin05:01:54

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

seryh05:01:01

а кто вкурсе как http-kit с запросами работает? он создает поток на каждый запрос? или как http в node.js будет с блокировками работаеть если вручную на другой поток не отдашь долгую операцию

artemyarulin05:01:58

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

seryh06:01:50

GraphQL кошерней бы лег на json-rpc, а не на rest

seryh06:01:04

насколько понял, создает 4(опционально) воркера между которыми и балансирует запросы

artemyarulin06:01:22

https://habrahabr.ru/post/275881/ хм, может кто-нить объяснить - на сколько огромный это костыль?

artemyarulin06:01:43

или взлетит?

potapenko06:01:25

забавно, пошли по тому же пути что в свое время Air Flash - байткод -> llvm -> нейтив

potapenko07:01:08

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

potapenko07:01:27

на том же Adobe AIR нужно было написать кучу нативных плагинов

potapenko07:01:52

думаю не взлетит, баловство

potapenko07:01:52

на флэше хоть было миллион разработчиков, которые умели делать навороченные игрушки и интерфейсы, а JavaFX все не настолько массовый.

artemyarulin07:01:53

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

artemyarulin07:01:07

JavaFX это же UI компоненты?

potapenko07:01:14

на JavaFX пописал тоже.

artemyarulin07:01:48

Не понимаю как они рендерят - если у меня кнопка на JavaFX, то в iOS чо будет?

potapenko07:01:19

да хз simple_smile извращение

artemyarulin07:01:32

это то понятно - хочется понять масштабы simple_smile

potapenko07:01:41

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

artemyarulin07:01:37

коротко - всю бизнесс логику на Java, потом через конвертор j2Objc на iOs

potapenko07:01:13

да какая там бизнес логика… сплошной UI и навигация между activity.

potapenko07:01:23

обычно логика все равно на сервере

artemyarulin07:01:14

ну разные есть приложения

potapenko07:01:35

но в целом наверное это хорошо, есть на c# есть на react/js теперь еще будет на java

potapenko07:01:38

я думаю еще на этом поиграться - https://github.com/galdolber/clojure-objc

potapenko07:01:44

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

artemyarulin07:01:56

а как оно работает? Это просто транслятор?

artemyarulin07:01:00

ааа, clojure -> java -> j2objc -> objc-c

rm07:01:55

нужно больше трансляторов

alwx08:01:44

Вы, возможно, пропустили, поэтому вот вам небольшая демка чуть более комплексного Cljs-приложения на React Native: https://github.com/alwx/luno-react-native

turtle08:01:36

Трансляторы фигня.

turtle08:01:46

Не нужно к трансляторству стремиться.

artemyarulin08:01:34

Никто не подскажет - как проверить что Java объект имеет определенный field? всякие (some-> (Exception. "new”) .data) валятся

asolovyov08:01:03

@rmuslimov: а можешь просто писать себе хендлеры на remote'ы, которые будут ходить в рест-сервис

artemyarulin08:01:19

вопрос снимается - в данном случае ex-data сделает все за меня

andrewboltachev08:01:44

Привет. Друзья, позвольте представить свой шаблон для Om Next: https://github.com/andrewboltachev/om-async-tut/tree/omnext1 Содержит бутстрап и датомик-фри. Сделан топорно, но меня самого устраивает. А также проект, сделанный на основе него: https://github.com/andrewboltachev/html2om для преобразования обычного (копи-пастного) ХТМЛ в Омовский: <div>hello</div> -> (dom/div nil "hello")

artemyarulin08:01:11

круто, спасибо. А можно узнать зачем в project.clj строчка: :jvm-opts ^:replace ["-Xmx1g" "-server”]

artemyarulin08:01:18

видел уже пару раз

andrewboltachev08:01:28

хм, сам не знаю. это к Ява-программистам. может -server это какая-то особая конфигурация памяти. делал прямо на основе шаблона Дэвида Нолена для тьюториала

artemyarulin08:01:54

а по поводу второго проекта - былоб круто сделать его 100% client side и выложить на github pages, отличненький сервис вышел бы

artemyarulin08:01:15

ага, я тоже жаву не бум-бум, может народ тут ответит

andrewboltachev08:01:06

да, точно. а то серверную часть на github pages не засунуть, наверное

andrewboltachev08:01:40

это просто всё что я смог сделать на Ом Некст пытался сделать кое-что для заказчика, но сделать вкладки и роутинг оказалось нереально

artemyarulin08:01:20

хм, да - ом-нект роутинга не имеет, народ еще не пришел к единому мнению как его сделать

andrewboltachev08:01:12

у меня какая-то такая идея:

;; 2nd sketch

(defui Tabs
  static om/IRelativeQuery
  (relative-query [_] ;; query, that depends on state itself
    `[:case
      (= :route-path "news"
          ~(om/get-query NewsTab)
          )
      (= :route-path "about"
          ~(om/get-query AboutTab)
          )
      ]
    ) ; looks ugly, but it's just to show the principle

  Object
  (render [this]
          ;; ...
          )
  )

andrewboltachev08:01:09

а-то set-query! как надо не работала... или я не понял как её использовать

andrewboltachev08:01:14

точнее, именно когда

artemyarulin09:01:14

о, хм. om/IQuery знаю, а IRelativeQuery первый раз вижу

andrewboltachev09:01:21

это я придумал

artemyarulin09:01:26

аааа, фу)

andrewboltachev09:01:40

т.е. похоже на Hoplon, где есть formula cell

andrewboltachev09:01:07

но в Hoplon'e отнюдь не "storing all data in a single atom"

andrewboltachev09:01:07

Ом Некст кажется всё более сложным. дак вот. нет пророка в чужом отечестве. не знаешь какой фреймворк выбрать

asolovyov09:01:55

а сейчас возможности добыть разные данные на основе чего-нибудь нельзя?

asolovyov09:01:19

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

asolovyov09:01:37

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

artemyarulin09:01:44

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

artemyarulin09:01:49

в этом смысл

seryh09:01:23

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

artemyarulin09:01:14

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

a.espolov10:01:07

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

a.espolov10:01:42

мне пришлось все запросы с параметрами захерачить в руте

a.espolov10:01:58

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

a.espolov10:01:28

но с другой стороны, сразу все перед глазами

andrewboltachev10:01:27

сейчас чё-то пытаюсь всё-таки сделать на set-query!. по дороге ещё много непонятных моментов, самый мне непонятный — необходимость оборачивать результат get-query в hash-map для проброса метаданных или как-то так

artemyarulin11:01:14

ну с омом надо еще понимать - это даже не бета, двадцать-какая-то альфа. Поэтому доков не так много, хотя коммьюнити уже много нагенерило

artemyarulin11:01:05

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

oxgrouby16:01:31

Чота clj-time себя странно ведёт. Пример из ридми с f/parse нуллпоинтерэкзепшн кидает

oxgrouby16:01:54

А, нет, я туплю.

oxgrouby16:01:13

Так всегда, возишься, разбираешь, кому-то написал -- и сразу сам находишь в чём дело

artemyarulin20:01:01

о боже, это гениально - сопру у сына уточку simple_smile

alwx20:01:17

Привет снова Если вы пишите на React Native, то приходится использовать Frappe для шейка девайса и вызова меню, а уже на девайсе нажимать Reload JS или что-то еще, что не особо удобно. Я попытался эту проблему исправить и форкнул Frappe.

alwx21:01:01

В общем, если кому надо, забирайте: https://github.com/alwx/milkshake (релизы тут: https://github.com/alwx/milkshake/releases). Теперь прямо из меню можно делать Reload JS, не дергая девайс лишний раз