
Filipp
17.08.2016
14:47:05
и пишется так же вроде

Ярослав
17.08.2016
14:53:15
в элме есть

Ҫѐҏӗѫӑ
17.08.2016
18:58:23

Google

Алексей
17.08.2016
18:58:39
что за митап?

Ҫѐҏӗѫӑ
17.08.2016
18:58:47
по хаскелю же

Алексей
17.08.2016
18:58:57
wow.. где когда кто?

Ҫѐҏӗѫӑ
17.08.2016
18:59:11
завтра в касперском. но рега давно закрыта
а хотя вроде нет https://laboratoriya-kasperskogo.timepad.ru/event/356321/

Aldar
17.08.2016
19:08:23
Наверное боян
http://www.confluent.io/blog/turning-the-database-inside-out-with-apache-samza/

Алексей
17.08.2016
19:08:36

Aldar
17.08.2016
19:08:47
хорошо бы трансляцию

Ҫѐҏӗѫӑ
17.08.2016
19:09:06
обещали что будет

Aldar
17.08.2016
19:56:00
https://www.humblebundle.com/books/joy-of-coding-book-bundle

Alex
18.08.2016
07:57:25
Typescript: Если вдруг кому интересно про typescript на rutracker довольно много лежит полных видео-курсов (15-16 годов)

Google

Дмитрий
18.08.2016
09:01:19
Есть объект-хранилище f и есть field, в котором вызывается метод attr с передачей каких-либо полей f
Как упростить вызовы attr?
field
.selectAll(f.type)
.data(rects.value)
.enter()
.append(f.type)
.attr('id',f.id)
.attr('x',f.x)
.attr('y',f.y)
.attr('width',f.width)
.attr('height',f.height)
.attr('rx',f.rx)
.attr('ry',f.ry)
Можно как то преобразовать его в что-то типа .map(attr, f)?
d3 - это наверное одна из самых странных штук, что я видел в фронтенде ?
Там конечно можно конечно передать объект с набором этих свойств, но тут принципиально интересно, можно ли упрощать такую запись

Алексей
18.08.2016
09:42:08

Дмитрий
18.08.2016
09:52:15
В документации о таком синтаксисе теперь не слова, а попытка использования падает с ошибкой

Алексей
18.08.2016
09:54:28

Дмитрий
18.08.2016
10:03:36

Ҫѐҏӗѫӑ
18.08.2016
10:08:04
д3 с рамдой хреново выглядит

Дмитрий
18.08.2016
10:08:57

Алексей
18.08.2016
10:09:11
Во во.
В общем, пока так обошёл
const attributor =
getter=>
d3obj=>
R.pipe(R.toPairs,R.reduce(
(_d3obj,e)=>_d3obj.attr(e[0],e[1])
,d3obj))(getter)
let setter = attributor(f) //f={x:0,y:1,rx:0,ry:1}
setter(obj)
Вообще D3 очень хорошо экстендиться
d3.selection.prototype.styleSS = function(obj) {
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
this.style(key, obj[key]);
}
}
return this;
}
d3.selection.prototype.attrSS = function(obj) {
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
this.attr(key, obj[key]);
}
}
return this;
}
d3.select(document.body)
.append('div')
.styleSS({ color: 'red' })
.text('Hello world')

Ҫѐҏӗѫӑ
18.08.2016
10:09:42
@Ai_boy ты ко скольки в касперский?
я часам к 8 думаю ехать вообще

Filipp
18.08.2016
10:11:31
Кажется, d3 была полезна пока не придумали virtual dom

Алексей
18.08.2016
10:11:38

Filipp
18.08.2016
10:11:56
Решает в целом ту же задачу, но сложнее

Алексей
18.08.2016
10:11:59

Ҫѐҏӗѫӑ
18.08.2016
10:12:02

Filipp
18.08.2016
10:13:10
Я сейчас не беру всякие библиотечные свг штуки, больше про саму концепцию enter/exit/update

Ҫѐҏӗѫӑ
18.08.2016
10:13:29
там и без свг штук дофига всего

Filipp
18.08.2016
10:13:57
Хелперов много полезных, да

Google

Ҫѐҏӗѫӑ
18.08.2016
10:13:57
ну и концепция норм вроде. чего плохого?

Дмитрий
18.08.2016
10:14:13
Ну да, у них там даже коллекции свои %)

Ҫѐҏӗѫӑ
18.08.2016
10:14:19
можно и свои компоненты на ней построить

Алексей
18.08.2016
10:14:33
+ d3 умеет делать DOM recycle ( повторно использовать DOM элементы ) - умеет virtual dom такое? :)

Filipp
18.08.2016
10:14:54
Часто приходится дублировать код

Дмитрий
18.08.2016
10:15:54
Ну вот я сейчас и строю компоненты) Хочу замутить послойный интерфейс компонентов, для этого нужна связка структур и dom, d3 подходит отлично, но бороться с ним порой ппц сколько надо

Алексей
18.08.2016
10:16:08

Filipp
18.08.2016
10:16:10
Дом элемент, который был в одном месте, прицеплять к другому?

Алексей
18.08.2016
10:18:30

Filipp
18.08.2016
10:19:03
Кажется, это основная идея за virtual dom
Смотришь дифф и не пересоздаёшь элементы без необходимости

Ҫѐҏӗѫӑ
18.08.2016
10:20:26

Алексей
18.08.2016
10:20:32

Ҫѐҏӗѫӑ
18.08.2016
10:20:33
и вроде ты там тоже был

Алексей
18.08.2016
10:20:53

Ҫѐҏӗѫӑ
18.08.2016
10:20:59
может и нет

Filipp
18.08.2016
10:21:09
В смысле избегает — тебе же надо чтоб UI изменился

Ҫѐҏӗѫӑ
18.08.2016
10:21:11
но там чел не ответил на мои вопросы
и я укрепился во мнении что элм не нужен

Google

Ҫѐҏӗѫӑ
18.08.2016
10:21:58
он отвечал точнее, но что-то типа “ну оно будет лучше наверное”

Filipp
18.08.2016
10:23:18
Если брать конкретно snabbdom, то чтоб элемент переиспользовался, тостаточно чтоб новый vnode совпадал селектором и ключом, отдельных дополнительных действий никаких не надо
В других реализациях в целом так же

Алексей
18.08.2016
10:24:58

Filipp
18.08.2016
10:25:15
Не пропишу ключ
И не буду писать класс в селекторе

Алексей
18.08.2016
10:27:18
И не буду писать класс в селекторе
что-то я сильно не уверен что это будет работаь именно так как ты говоришь.. даже React предупреждает что без key он не сможет нормально сделать diff

Filipp
18.08.2016
10:28:11
Нормально = не используя для совершенно разных объектов один элемент
А тут это как раз то что нужно

Алексей
18.08.2016
10:51:50

Alex
18.08.2016
11:02:59

Ҫѐҏӗѫӑ
18.08.2016
11:09:19
с д3 все равно будет все плохо выходить
там подход императивный
и чейнинг во все поля

localvoid
18.08.2016
11:24:12

Алексей
18.08.2016
11:24:59

localvoid
18.08.2016
11:25:59
https://github.com/localvoid/kivi/blob/master/lib/component.ts#L386-L408

Алексей
18.08.2016
11:28:05

localvoid
18.08.2016
11:28:51
а есть имплементации , которые не копипастили из моей либы?

Алексей
18.08.2016
11:29:53

Google

localvoid
18.08.2016
11:30:18
во всяких preact, inferno, imba, mithril тоже есть ресайклинг

Алексей
18.08.2016
11:31:39
ну на самом деле соглашусь - virtual dom умеет recycle
а умеет virtual dom делать декларативную анимацию? :)

localvoid
18.08.2016
11:32:24
оборачивай в компоненту и делай декларативную анимацию

Алексей
18.08.2016
11:34:44

localvoid
18.08.2016
11:35:27
так сложно делать обёртки типа transition container'ов ?

Алексей
18.08.2016
11:37:38

localvoid
18.08.2016
11:38:29
я к тому что этого и не должно быть в виртуальном доме, это всё делается всякими hoc'ами
а вот пихать всякихе анимационные хуки, типа как это сделано в snabbdom - вот это большая ошибка, я 2 года назад начал пихать эти хуки, потом идея расползлась, но теперь я отлично понимаю что этого делать не стоит.

Ҫѐҏӗѫӑ
18.08.2016
11:55:26
https://github.com/paldepind/snabbdom/issues/150#issuecomment-240620828
snabbdom будет на ts

Alex
18.08.2016
12:06:16
там подход императивный
запаковываем d3 в драйвер (отделяем императивный код) и используем cycle для декларативного описания логики

Ҫѐҏӗѫӑ
18.08.2016
15:13:24
эх, я из дома буду митап смотреть
не получилось поехать

Alex
18.08.2016
15:14:16
хаскел?

Ҫѐҏӗѫӑ
18.08.2016
15:28:42
да

Andrey
18.08.2016
15:59:00

Ilya
18.08.2016
15:59:46
10 RxJS функций, которые вы должны знать.
Ссылка
#RxJS

Ҫѐҏӗѫӑ
18.08.2016
16:00:43
идет