Fork me on GitHub
#clojure-russia
<
2016-04-22
>
maxim03:04:02

@ssesutchenkov: эта? Чисто Функциональные Структуры Данных http://dmkpress.com/catalog/computer/programming/functional/978-5-97060-233-1/

Kira Sotnikov07:04:29

abtv: я на rootconf подавал )

Kira Sotnikov07:04:03

andmed: я буду в том числе про кложуру рассказывать если одобрят

abtv07:04:09

Я на все пойду, не стал выбирать какой-то один поток. Пишите, если кто еще будет simple_smile

abtv07:04:03

а чего они так тянут с одобрением? @lowl4tency

niquola07:04:03

Кто хочет в open source проекте поучаствовать на clojurescript, http://electron.io - мордочка для postgresql?

niquola07:04:12

Ага, чуть пошире

niquola07:04:16

С потенциальным выходом на web enterprise версию

kronos_vano07:04:41

А есть что-нибудь в опенсорсе где активно используется component? Хочу посмотреть "как надо делать"

bezrukov07:04:05

@nicola: тема интересная, я начинал что-то подобное делать, как плагин для атома. А что с clojurescript будет использоваться? reagent?

bezrukov07:04:02

А уже что-то можно посмотреть или пока на стадии идеи?

niquola07:04:23

Приходи во вторник на https://pgconf.ru/201604

bezrukov07:04:36

да, я зарегистрировался уже

bezrukov07:04:23

ага, посмотрю, спасибо!

Kira Sotnikov07:04:29

abtv: парни занятые в комитете, обещали во вторник заапрувить но не получилось )

abtv09:04:47

@lowl4tency: как насчет того, чтобы встретиться там в первый день после конференции вечером? simple_smile

abtv09:04:54

Может еще кто-нибудь из чата идет?

Kira Sotnikov09:04:04

да я не против )

abtv09:04:48

круто)

abtv09:04:23

у них афтерпати платное, кстати, почему-то... я платил только за конференцию пока

abtv09:04:43

@nicola: идешь на РИТ 2016?

niquola09:04:56

Пока думаю

niquola09:04:07

надо бы наверно simple_smile

abtv09:04:09

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

Kira Sotnikov10:04:17

abtv: докладчикам все оплачивают

Kira Sotnikov10:04:22

перелет проживание бухлишко

lich10:04:32

Всем привет! Только недавно начал разбираться с clojurescript и reagent. Есть функция на clojure, достаточно тяжелая. Как по вашему опыту лучше построить обращения к ней?

misha10:04:38

с уважением ( ͡° ͜ʖ ͡°)

lich10:04:14

ну сейчас первая попытка была через http post/get. Но все как-то не очень интуитивно и найти хорошего туториала.

andmed11:04:39

@lowl4tency: @abtv отличная идея. те кто не идут тоже не прочь встретиться после конференции simple_smile

abtv11:04:08

я поэтому и не платил за пивко, хз как и где пойдет обсуждение simple_smile

abtv11:04:00

но конфа в Сколково, не удобно

Kira Sotnikov12:04:27

abtv: я не уверен что смогу где-то еще, я скорее всего пойду на афтерпати общаться с парнями с соседнего чятика и оргами

abtv12:04:51

@lowl4tency: я буду уже на месте решать идти туда или нет, обычно можно докупить что-нибудь. мне изначально не понравилась идея платить за это отдельно, обычно так не делается

Kira Sotnikov12:04:25

пацаны просто решили подзаработать

Kira Sotnikov12:04:35

а обычно на такие вещи едут именно за афтерпати

Kira Sotnikov12:04:40

слушать доклады скучно

potapenko12:04:34

@lich а что имеется ввиду под тяжелой функцией?

potapenko12:04:53

если get/post и http, то похоже уже сервер?

potapenko12:04:42

в ClojureScript тяжелый код достаточно легко разбить на отдельный части через core.async

potapenko12:04:57

“размазать” во времени

Kira Sotnikov12:04:17

о, а оно так умеет?

Kira Sotnikov12:04:25

а мануала как орагнизовать очередь нету?

Kira Sotnikov12:04:55

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

potapenko12:04:01

ну делаем блок go, в него добавляем (<! (timeout 10))

potapenko12:04:16

таймаут “отправляет” выполнение в следующий фрейм

potapenko12:04:18

вот и все

potapenko12:04:30

так можно и циклы в разных фреймах выполнять

potapenko12:04:36

чтобы UI не тормозить

Kira Sotnikov12:04:53

надо заботать

lich12:04:30

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

potapenko12:04:45

а… ну как без это то

lich12:04:55

то есть, самый верный вариант, это отправлять запросы через clj-http?

potapenko12:04:52

а чем не нравится?

lich13:04:09

ну значит, буду разбираться с ней. Просто как-то удивительно мало туториалов

potapenko13:04:42

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

potapenko13:04:49

они отдают атомы,

potapenko13:04:07

в компоненты я линкуютсь на такой атом и рендерю UI

potapenko13:04:26

когда ответ, в атом поместились данные - UI перерисовался

potapenko13:04:12

компоненты в смысле reagent-компоненты

lich13:04:18

то есть, функции отдают не json?

potapenko13:04:51

уже в атом помещают, превращают в мапы, еще и кейсворизят все

potapenko13:04:34

я не помню cljs-http ведь сам подготавливает

potapenko13:04:42

кейворды, мапы итд, из #js

potapenko13:04:02

я атомами, то есть получается ассинхронно

lich13:04:53

получается, так, да. То есть REST будет отдавать json, а его cljs-http преобразует в мапу

potapenko13:04:58

в реагент компоненте

(let [my-server-data (rest/get-my-api-answer)]
  (fn[]
    [text @my-server-data])
)

potapenko13:04:20

и уже не думаешь как они дойдут, и когда

potapenko13:04:18

гриппую, туплю -исправляю по десять раз код

potapenko13:04:30

ну ты понял simple_smile

lich13:04:31

да, тут все понятно. Попробую, спасибо!

lich13:04:43

не болей!

potapenko13:04:45

функцией нужно было обернуть, а то при перерисовке опять на сервер будет обращаться simple_smile

lich13:04:50

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

potapenko13:04:24

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

potapenko13:04:50

(defn my-comp [props]
  (let[my-state (get-mystate)]
    (println “created!")
    (fn[props]
      (println “rendered!")
      [text (str @my-state)])
    )
  )
created! rendered! rendered!

abtv15:04:06

>а обычно на такие вещи едут именно за афтерпати @lowl4tency: ага, я понимаю) если б там были кложуристы, я б заплатил не думая, а так - может я заплачу, а туда никто не пойдет из тех, с кем будет интересно пообщаться. а пиво за три тыщи я могу и сам организовать, тут монады знать не надо simple_smile

rmuslimov16:04:19

@abtv а едешь из курска в питер на postgres конференцию?

abtv16:04:51

нет, к сожалению @rmuslimov

rmuslimov16:04:09

я только доехал до своего hometown в Казань

rmuslimov16:04:34

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

serioga16:04:41

> например мне надо послать сто тысяч запросов, но у сервера ограничение на количество запросов в минуту https://github.com/brunoV/throttler

rmuslimov17:04:25

кажется в manifold.streams из коробки умеют throttle

rmuslimov17:04:37

а перейти с core.async туда достаточно просто

konukhov17:04:19

ребят, я тут почитал про redux, мне показалось классным, и я написал cljs-имплементацию. идея в том, что экшны кладутся в core.async-канал с трансдюсером (который по сути – редюсер из redux). есть mixin для rum – уже сделал на работе на этой штуке интерфейс. вот, может кому-то будет интересно / пригодится: https://github.com/konukhov/redux-cljs

konukhov17:04:54

сразу к шуткам про “я тут почитал про redux, мне показалось классным” – я бекендер troll

Kira Sotnikov17:04:27

rmuslimov: а у меня манифолд кстати, но без стримов вроде и как сервер а не как клиент

Kira Sotnikov17:04:31

надо посмотреть

Kira Sotnikov17:04:19

abtv: ну давай там пересечемся и решим simple_smile я тоже не уверен что там много будет девопсов

abtv17:04:16

@lowl4tency: конечно, я еще чатик опрошу за пару дней до мероприятия, чтобы собрать побольше людей)

seryh17:04:22

lazy-seq кто-нибудь использует активно в работе? как то сложновато юз кейс под него придумать

abtv17:04:44

сообщения из очереди разгребать, например @seryh

seryh17:04:56

а есть примерчик посмотреть?

seryh17:04:20

в офф доке только фибоначи всякие

seryh17:04:51

о спасибо

abtv17:04:38

пример оттуда

seryh17:04:10

круто

artemyarulin19:04:11

@abtv: Как доклад прошел?

andre20:04:41

@abtv: может запись есть?

abtv21:04:04

довольно неплохо, на мой взгляд, хотя можно было и попроще, учитывая, что аудитория пишет на java/objc под мобилки и js для браузера, но это с опытом приходит, наверное, это мое второе выступление в жизни. так уж вышло, что до этого я на C# писал и как-то у нас не было принято шарить знания.

abtv21:04:25

видео нет пока. зато есть видео, где я в прошлом году выступал на том же митапе https://www.youtube.com/watch?v=xWPzh6K8_vM , на кложе опыта было полгода только, зато было очень интересно - мне все это было новое: и лисп и ФП и я еще на C# и скале параллельно писал и я сделал такой вот доклад.

rmuslimov22:04:58

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

rmuslimov22:04:26

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