Size: a a a

2020 August 13

CD

Constantine Drozdov in rust_offtopic
рендерера и даже нумерованных списков я там пока не нашел
источник

CD

Constantine Drozdov in rust_offtopic
Roman Proskuryakov
так что эти ваши иммутабельные структуры используются в текстовых редакторах, да.
https://github.com/xi-editor/xi-mac/blob/master/Sources/XiEditor/XiTextPlane/TextLine.swift
вот так выглядит настоящий код текстового редактора
источник

CD

Constantine Drozdov in rust_offtopic
как вы видите, совсем не в той репе и всю эту персистентность немного игнорируют
источник

RP

Roman Proskuryakov in rust_offtopic
Constantine Drozdov
ты хоть таймстамп дай, часовое видео смотреть нет желания
источник

CD

Constantine Drozdov in rust_offtopic
он 22 минуты рассказывает как это используется в фотошопе?
источник

CD

Constantine Drozdov in rust_offtopic
Roman Proskuryakov
Ну и у них очень крутая документация по структурам данных: https://github.com/xi-editor/xi-editor/blob/master/docs/docs/crdt-details.md
в общем, это замечательно, только они реализовали не текстовый редактор, а студенческая лабу на императивном языке, часов на 40 работы
источник

RP

Roman Proskuryakov in rust_offtopic
Constantine Drozdov
он 22 минуты рассказывает как это используется в фотошопе?
2304 secs = 38:24. ты кликай, ага.
источник

CD

Constantine Drozdov in rust_offtopic
Roman Proskuryakov
Ну и у них очень крутая документация по структурам данных: https://github.com/xi-editor/xi-editor/blob/master/docs/docs/crdt-details.md
всю их крутость для применения на уровне выше можно повторить при помощи одного хеша
источник

CD

Constantine Drozdov in rust_offtopic
уверен, что это верно для любого их "фронтенда"
источник

CD

Constantine Drozdov in rust_offtopic
Roman Proskuryakov
> Xi-Editor — Immutable.
т.е. как это выглядит (по всем признакам)
персистентный движок для потока данных
сверху рендерер, который делает следующее: перечисляет все данные, сравнивает с кэшом (я не находил место, но очень на это надеюсь), не совпало - перерендерить
мы используем персистентность только как ключ мапы, ну давайте поставим в этом месте хеш
источник

CD

Constantine Drozdov in rust_offtopic
а вся история про многопоточку немедленно разбивается о перечисление - ну и зачем мы распараллеливали изменения в потоке данных, которые занимали 0 времени?
источник

CD

Constantine Drozdov in rust_offtopic
Roman Proskuryakov
> Xi-Editor — Immutable.
а знаешь, что самое интересное? можно по приколу для пробного тура какой-нибудь очной олимпиадки (народу все равно к клаве привыкать) выдать задачу повторить вот просто вот это всё АПИ и на весь этот набор тестов, и знаешь что? я думаю, что за пару часов кто-нибудь это сделает
источник

CD

Constantine Drozdov in rust_offtopic
без условия персистентностей, конечно, хешами подбирать
источник

CD

Constantine Drozdov in rust_offtopic
а, ну тут америку открывают, если вы не можете сделать теплое undo прямым копированием у вас проблемы, потоки микрокоманд никогда как надо не закомпозируются и вечно фейлят от любой ошибки, о как хорошо что у нас слои с метаданными которые заменяемы на айдишники (назовём их shared_ptr<const metadata>), а деревья слоёв у нас мелкие, так что просто откомпозируем метаданные и копируем, копируем
источник

CD

Constantine Drozdov in rust_offtopic
для текстового редактора в связи с проблемами выше мы таки вынуждены писать потоки микрокоманд, хорошо что их примерно 7
источник

CD

Constantine Drozdov in rust_offtopic
https://github.com/xi-editor/xi-editor/blob/master/rust/rope/src/rope.rs#L402
от это ребята страдают, нельзя просто взять и хранить бинарные потоки
источник

Т8

Т-34 85 in rust_offtopic
Constantine Drozdov
компилятор может случайно начать форматировать диск еще до того, как программа запущена - от него потребовали решить парадокс лжеца
А как он решается по факту?
источник

R

Roman in rust_offtopic
Ты знаешь где это?
источник

Т8

Т-34 85 in rust_offtopic
Roman
Ты знаешь где это?
Не
источник

Т8

Т-34 85 in rust_offtopic
И я не беларус, если чтт
источник