
Nick
27.03.2017
14:02:30
и не обязательно по всем нодам ходить

Aleksey
27.03.2017
14:03:05

Nick
27.03.2017
14:03:15

Aleksey
27.03.2017
14:05:23
ну откуда O(n)
У Node в DOM плоский список детей. Мы можем представить это дерево, как список таплов где первый элемент это мм. показатель вложенности.

Google

Mikhail
27.03.2017
14:05:59

Vasily
27.03.2017
14:06:07
Алексей говорит о том, что надо по всему дереву пройти, чтобы дифф построить

Nick
27.03.2017
14:06:25
это O(logn)

Mikhail
27.03.2017
14:06:46

Nick
27.03.2017
14:06:50

Aleksey
27.03.2017
14:06:54
Ох телеграм.

Nick
27.03.2017
14:07:02
в том же реакте есть shouldcomponentupdate)
который говорит, что дальше проверять не над

Aleksey
27.03.2017
14:09:45
это O(logn)
Ну я конечно не специалист по оценке алгоритмов в био-о нотации, но если таплы одинаковой длинны (а они одинаковой дилнны в моем случае), то это n*k, а k вроде бы как опускают.

Mikhail
27.03.2017
14:10:53

Google

Nick
27.03.2017
14:11:59

Aleksey
27.03.2017
14:12:29
в том же реакте есть shouldcomponentupdate)
Иногда рассчитать shouldcomponentupdate дороже чем сделать дифф. Все зависит от реалиции. Представь что стоимость рассчета ченьжсета это просто N сравнений, где N это количество узлов DOM. Что такое полторы тысячи equals для современного процессора?

Nick
27.03.2017
14:12:47
если ты там биткоин маинер вставишь, то все будет плохо

Mikhail
27.03.2017
14:15:28

Nick
27.03.2017
14:15:52
кстати у того же реакта пишут, что O(nˆ3)

?Ivan
27.03.2017
14:16:22

Nick
27.03.2017
14:16:40
exactly

Aleksey
27.03.2017
14:17:07

Nick
27.03.2017
14:17:17

Aleksey
27.03.2017
14:17:25
Я сейчас попробую примерчик написать.

Nick
27.03.2017
14:17:33
вру
у них O(n) тож

Aleksey
27.03.2017
14:17:40
Да, врешь.

Nick
27.03.2017
14:18:06
я понял откуда O(n) берется, ты ж только по изменениям бежишь
а не по всему дереву

Aleksey
27.03.2017
14:20:00
> If we used this in React, displaying 1000 elements would require in the order of one billion comparisons. This is far too expensive. Instead, React implements a heuristic O(n) algorithm based on two assumptions:
>
> 1. Two elements of different types will produce different trees.
> 2. The developer can hint at which child elements may be stable across different renders with a key prop.
я беру только первое предположение, но этого хватает.

Google

Nick
27.03.2017
14:20:31
я ж написал выше)

Oleg
27.03.2017
14:24:19
Навроде расстояния левенштейна
т.е. имея деревья [1, [2, 3], 4] -> [1, 4, [2, 3]], алгоритм поймёт, что нужно поддеревья поменять местами

Yuriy
28.03.2017
04:09:40
Привет всем, кто-нибудь знает возможно ли включить логи для 'akka-http', а не только лишь акторов 'akka'? Например 'akka.loglevel = DEBUG'.

Alexey
28.03.2017
04:48:24

Aleksey
28.03.2017
05:58:52
Олег Бунин хочет сделать студию для подкастов на РИТ++ https://www.facebook.com/oleg.bunin/posts/1472543066120713. Напишите туда, если слушаете Скалалаз.

Mikhail
28.03.2017
07:06:15

Viacheslav
28.03.2017
12:13:27
Посоны превед! Банальный вопрос: вот есть у меня 3 микросервиса работают себе все хорошо. В один прекрасный момент юзер меняет настроечку приложения и надо эту настройку пропихнуть во все сервисы. Варианты: берем какой-нибудь consul/zookeeper и храним там настройки, каждый раз приложение читает настроечки оттуда и все ок. Делаем какой-то механизм который событийно уведомляет сервисы о изменившихся настройках. Кто как у себя реализовывает?

Daniel
28.03.2017
12:14:06
Дёргаем консул раз в 5-10 секунд, полёт нормальный

Alexey
28.03.2017
13:11:21
стрим настроек через консул и пересоздание при изменении выглядит норм

Artem
28.03.2017
13:14:16
ну или динамические настройки аля как сделано в archarius

Artem
28.03.2017
13:14:34
которые колбеками обновляются

Denis
28.03.2017
13:26:42
Есть тайп класс для штук которые умеют
xmap[B](fa: F[A])(ab: A => B, ba: B => A): F[B] делать?

Daniel
28.03.2017
13:27:40
Invariant

Denis
28.03.2017
13:27:57
спасибо

Viacheslav
28.03.2017
13:32:01

Алексей
28.03.2017
14:01:28
Привет, может кто-нибудь сталкивался в Spark с такой фигней, отрабатывает StringIndexer/VectorAssembler и на 199(из 200) тупо залипает, при этом shuffle write постоянно растет, пока не исчерпает все доступное место или не будет убит раньше, причем не зависит от размера исходного набора. Даже не пойму куда копать.

Alexandr
28.03.2017
18:15:49
Чем отличается State от Lens и Prism? У меня каша в голове :(

Google

Alex
28.03.2017
18:24:06
state это разновидность автомата Мили, а линзы - автомата Мура
линзу можно перегнать в State, а назад нет

Admin
ERROR: S client not available

Alex
28.03.2017
18:25:26
def getS[S,A](l: Lens[S, A]): State[S,A] = State(s => (l.get(s), s))
def setS[S,A](l: Lens[S, A], a: A): State[S,Unit] = State(s => (l.set(s, a), ()))

Alexandr
28.03.2017
18:34:28
Спасибо!

Nikolay
29.03.2017
08:50:41
https://twitter.com/propensive/status/846683941604077569

Dmitriy
29.03.2017
09:11:13
Подскажите нубу. Задача - написать веб-морду к консоли. Вводишь команды, они передаются в шелл, шелл даёт вывод и это передается обратно на страницу. Сделал частично через sys.process "!!" Но что делать с выводом, который требует ответа? Например. Ввожу ssh root@8.8.8.8 . Сервер запрашивает пароль. Как вывести пользователю на страницу запрос пароля и как потом его передать в поток шелла

Юрий
29.03.2017
09:18:40
а в чём проблема то собственно? Юзай любые подходящие js штуки для ввода пароля. Как юзер введет - передашь в консоль

Dmitriy
29.03.2017
09:20:00
Первая проблема в том, как получить инфу о том, что консоль требует ввода

Aleksey
29.03.2017
09:23:34

Mikhail
29.03.2017
09:37:54

Kirill
29.03.2017
09:38:47
посмотри sys.process.ProcessIO

Mikhail
29.03.2017
09:38:51
Но для этой задачи уже немало все понаделали. На скале есть смысл это делать только, если знаешь зачем оно и чем готовое не подходит)

Kirill
29.03.2017
09:38:57
ему можно передать обработчики in/out

Dmitriy
29.03.2017
09:39:42
Есть примеры библиотек? Искал и не нашел ничего.
Но для этой задачи уже немало все понаделали. На скале есть смысл это делать только, если знаешь зачем оно и чем готовое не подходит)
Для упрощения работы с shell видел только ammonite

Mikhail
29.03.2017
09:40:17

Dmitriy
29.03.2017
09:40:29
Да, именно на scala

Mikhail
29.03.2017
09:40:30
тебе задачу решить или со скалой поиграться?

Google

Mikhail
29.03.2017
09:42:09
в любом случае тебе надо понять, что твоя прослойка - она просто прослойка. которая запускает процесс и работает как передаст с его ин-аут - ничего более

Dmitriy
29.03.2017
09:42:42
Ну вот пока обсуждали, у меня вроде начало укладываться
Вобщем всем спасибо, пока пойду пробовать

Алексей
29.03.2017
10:13:01

Юрий
29.03.2017
10:15:08

Алексей
29.03.2017
10:16:03
там правда только ANSI кодировка, но в целом норм, даже VIM и тп можно запустить и будет норм работать.

Dmitriy
29.03.2017
10:17:09
Спасибо, но это Go. Нужна Scala, но поразбираюсь, может получится что перенять

Denis
29.03.2017
10:23:17

Oleg
29.03.2017
10:23:23

Алексей
29.03.2017
10:34:49

Denis
29.03.2017
10:37:37