Fork me on GitHub
#clojure-russia
<
2016-05-31
>
az04:05:09

@niwinz: сколько времени ушло на такой гайд?

misha05:05:26

@leov, думаю, что можно заморочиться, поселить DS жить в воркере и читать из/писать в него через апи, обмениваясь с воркером только транзакционными векторами/мапами и результатами чтения

misha05:05:58

когда дойдут руки - я так хочу на мобилочке делать: поселить DS в отдельный js контекст со своим тредом, и ходить в него через этого чувака: https://github.com/robbiehanson/CocoaHTTPServer

misha05:05:18

получится +- как с веб воркером

savelichalex05:05:24

и ты ничего не выйграешь, учитывая сколько все будет (де)сериализовываться

misha05:05:37

зависит как раз от "сколько всего"

savelichalex05:05:59

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

savelichalex05:05:11

быстрее датаскрипт от этого не заработает

misha05:05:32

транзит достаточно быстро огромную DS бд зажимает/разжимает, нужно его проверить на application-specific результатах чтения и понять, есть ли смысл возиться и терпеть

misha05:05:01

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

misha05:05:32

например из того же воркера можно в localstorage писать, что, фактически, самое дорогое из датаскрипт-рилейтед операций

savelichalex05:05:54

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

misha05:05:05

я тоже kappa

savelichalex05:05:28

там даже многое из стандартной библиотеки js не работает

misha05:05:51

No, localStorage and sessionStorage are both undefined in a webworker process.

savelichalex05:05:47

вот на мобилке это конечно еще интересно)

misha05:05:49

You can use IndexedDB in WebWorkers

savelichalex05:05:12

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

misha05:05:26

на мобилочке по-другому - не вариант, там дело до секунд доходит на +- толстой базе

misha05:05:10

есть, но когда у тебя супер-секси синхронизация "датомами" с датомиком на сервере - стоит хотя бы попробовать повозиться

savelichalex05:05:19

это само собой, попробовать всегда стоит 😉 на словах то одно, а на деле может по-другому получится)

misha05:05:36

естественно

misha05:05:49


Browser compatibility
Desktop
Feature	Chrome	Firefox (Gecko)	Internet Explorer	Opera	Safari (WebKit)
Available in workers	(Yes)	37.0 (37.0)[1]	No support[3]	(Yes)	No support[4]

[4] WebKit bug #149953
Bug 149953 - Modern IDB: WebWorker support
Status:	RESOLVED FIXED

misha05:05:42

beidson	2016-05-11 12:57:32 PDT
Status	ASSIGNED	RESOLVED
Resolution	---	FIXED

niwinz05:05:27

@az на какой? на воркшоп о книга? (на воркшвоп гаид примерно дня 3-4 общего времени, на книгу немного поболше... 1-2 месяца...)

az05:05:25

1-2 месяца ада

niquola09:05:03

spec супер. Я уже придумал как его к route-map прикрутить

niquola09:05:12

Вы вчера делали встречу?

andre09:05:29

нет, Андрей предложил на среду 22:00

artemyarulin12:05:44

Мне от Нолена понравилось как он для ом-некста написал спеку https://gist.github.com/swannodette/c1444684bc2a8236634e4e110c654fe5

misha13:05:12

@artemyarulin: ты анимации использовал в RN?

misha13:05:34

не налазит на голову как оно там работает, можешь объяснить?

misha13:05:12

в двух словах: 1. сделал rum миксин, в котором в локальный атом складываю высоту клавиатуры (0 - нет, 300 - есть). повесил на атом воч (request render), всё как в rum/local. использую его во вьюхе для marginBottom. Всё пучком, оно работает, но слишком резко высоту меняет. 2. положил в тот атом не 0/300, а AnimatedValue(0). и не swap!aя/reset!ая атома вызываю анимацию на keyboardWillShow/keyboardWillHide. В итоге анимация работает, атом не меняется, рендер не вызывается. Магия, не могу понять, как теперь жить и во что верить

misha13:05:36

получается, что AnimatedValue - тоже типа-атом, но жаваскриптовый?

andre13:05:31

@potapenko: вроде в курсе анимаций в RN

savelichalex13:05:04

@misha: я до конца тоже не понимаю, но что то вроде того)

savelichalex13:05:58

у меня вот в атоме локальном есть AnimatedValue.

savelichalex13:05:31

Потом я вызываю на нем и Animated.timing

savelichalex13:05:46

насколько я понимаю анимация через setNativeProps работает

misha14:05:20

без атома тоже работает. в смысле "необязательно заворачивать AV в атом"

misha14:05:43

@savelichalex: а скажи, как завернуть спринг анимацию в тайминг? сделал я

(.start (.spring Animated (new AnimatedValue 0) #js {:toValue 500 :friction 6})))
а теперь хочу её медленнее запустить. что делать?

savelichalex14:05:49

а, ну это да

savelichalex14:05:58

просто нужно иногда свапать его

misha14:05:27

с какой целью свапать? ) по сторонним причинам?

misha14:05:05

вообще, только что прикрутил https://github.com/oblador/react-native-animatable может и не пригодится в тайминг заворачивать

misha14:05:26

Animated.parallel([
    Animated.spring(this._moveAnimationValue, {
        toValue: 100
    }),
    Animated.timing(this._opacityAnimationValue, {
        toValue: 0,
        duration: 200
    })
]).start()

artemyarulin14:05:51

@misha: Неа, анимация не знаю

misha14:05:43

лол тут столько жс'а - срочно нужно в кложу завернуть всё это, чтобы нормально хэшмапами описывать

savelichalex15:05:06

да там много что надо обернуть) еще бы PanResponder тоже завернуть)

savelichalex15:05:38

@misha: да мне надо свапать когда пропсы новые приходят чтобы сбросить начальное значение для анимашки)

misha15:05:10

анимации в RN - на датабиндингах нахачены: https://www.youtube.com/watch?v=xtqUJVqpKNo&amp;feature=youtu.be&amp;t=778