Local-first и децентрализация
706 subscribers
140 photos
19 videos
3 files
312 links
Replicated Object Notation,
CRDT, распределёнщина и децентрализация.
Ведёт @gritzko
Чат @Ronzgovory
Download Telegram
Иду, вижу - подкова лежит.
Поднял, перевернул - а там конь.

(про работу)
😁21🔥6💯5👍2👎1
Local-first и децентрализация
Video
Прошла половина учебного года. Я, как и планировал, поигрался с RDX. Об этом чуть далее. А с Darwin (системой контроля версий на RDX) поиграться пока не получилось.

1. Выдача курсача превратилась в балаган (а в ВШЭ я делал со студентами курсач "токенизированный diff" два года назад, получилось очень неплохо, жалею только что не хватило времени и сил дальше раскручивать эту тему). В этот раз, немногие студенты с компетенциями отвалились по тем или иным причинам. Студентов без компетенций (как на подбор, длинноволосые блондины почему-то) набирать смысла не было.
2. Пункт 1 не так обиден только потому, что я тоже подзастрял. По истории коммитов в librdx видно, что я много времени потратил на задачи, которые изначально не рассматривал как важные и нужные. Много сил ушло в переделку skiplog, в JSON-подобный RDX-JDR, в LSM логику. По большому счёту, тут было два направления работы: "RDX как JSON" и "RDX как SST", оба понятно почему важны для RDX в целом и Darwin в частности. В общем, тему удалось укатать нормально, но и времени это отняло прилично.
3. Некоторые темы, на которые было убито много времени и сил, удалось решить словами "а, да это же не нужно совсем". Это конечно умение, которое непонятно как вырабатывать, но очень полезное.

Чтош. Во второй половине всё-таки займусь Дарвиным.
🔥5👌2👎1
А с токенизированным diff тема была такая: тот же git diff построчный, что более простая задача, чем посимвольный, но и он частенько несёт пургу. Например, добавление (append) нового метода может понять, как вставку двух половин, если последние строки нового метода совпадают с последними строками метода перед ним.
Когда мы считаем посимвольный diff, такие косяки становятся повсеместны, потому что у символов разнообразие сильно ниже, чем у строк, и алгоритм Майерса чаще пургоносит. В гугловском diff-match-patch прямо по коду видно, как много сил потрачено на борьбу с этим.
Поэтому идея - использовать токенизацию, чтобы считать diff по словам хотя бы. Сначала рассматривали textmate грамматики, но не пошло. LSP довольно тяжёлый вариант, но он как-то сработал, остановились на этом.
А в "конкурирующей фирме" difftastic использовали tree sitter и так пришли к некоторому успеху. В Darwin я попробую прикрутить difftastic.
3👎1
Local-first и децентрализация
А с токенизированным diff тема была такая: тот же git diff построчный, что более простая задача, чем посимвольный, но и он частенько несёт пургу. Например, добавление (append) нового метода может понять, как вставку двух половин, если последние строки нового…
Какой вывод из этой ретроспективы?
Нужно держать в уме конечного пользователя и use case и в имеющемся бюджете по времени и коду доводить до состояния MVP. Пусть криво, зато применимо. Если есть MVP - дальше всё уже как-то само покатится по своей логике.
Если же до этого этапа недотянули, на github остаётся очередной студенческий недострой.
5👍2🥴2👎1💯1
Я тут чехвостил LLM, а вот посмотрел приземление 1й ступени Маска и решил добавить в картину ещё одну точку. Вряд ли у них там нейросетка всё приземляет, её банально обучить не на чем, это второе такое приземление в истории. Аналогично, живого пилота на такую задачу тоже не найти, потому что обучить его не на чем. Но есть программа, которая справляется, с ювелирной точностью.
Alpha Go это переборный алгоритм и нейросетка для нечёткой (интуитивной) оценки позиции. Гарри Каспаров проиграл примерно такому же алгоритму когда-то, перебор + оценка.
Помню ещё в школьные годы слышал, что американцы приземлялись на Луну переборным алгоритмом, а СССР по формуле, получилось более экономично.
Соответственно, получается чёткая градация: когда возможно - лучше по формуле, когда это сложно то есть перебор, когда перебор невозможен - нейросетка.
👍17🔥32👎1🥱1🥴1
Local-first и децентрализация
Подытожу мои разбирательства с BlueSky/Fediverse/ActivityPub. Собственно, тут активистка и соавтор ActivityPub (queer и это всё), все очень нудно и обстоятельно изложила. BlueSky это архитектурно Twitter с некоторым количеством "маркетинговой" децентрализации.…
А вот кстати основатель Matrix объясняет ситуацию. По его словам, все деньги от правительств и корпоратов ушли по тендерам системным интеграторам, которые просто взяли опен сорс версию и где надо сами чуть допилили. Попытки напугать их AGPL закончились, как я понимаю, ничем.
🗿42😍1🤗1😎1
Forwarded from Курс Децентрализованные Системы
Новая лекция про git
https://www.youtube.com/watch?v=qEvzThshAsU
👍9❤‍🔥2👎1🔥1👏1
https://review.video.fosdem.org/video/2/0d/a787ce93442463284ec8f7b672dfbf40265a86040a55bdbd08758c99ea904/1/main.mp4
Выступление на FOSDEM. На более ломаном английском, чем обычно. (Это превью, границы видео немного не там.)
P.S. https://video.fosdem.org/2025/h1308/fosdem-2025-5867-why-don-t-we-have-libsync-yet-.av1.webm
👍9👀63🔥3
Одна из идей для курса децентрализованных систем, которую реализовать не удалось, это создание радио сетей на LoRa. Я лично максимально продвинулся только до того, чтобы вести видеозвонки из лесу, используя дешёвый клон Raspberry Pi и 4G. А сейчас в Восточной Украине уже такие чудят чудеса, что мне лучше не позориться наверное.
У немцев кстати довольно хорошо развит всякий freifunk. По-хорошему завидую.
8🤔2😢1🥱1
Некоторое время тому меня попросили поразбираться в TON. Текст выкладывать, наверное, не буду, но смысл простой. Всё, в чём упрекали Николая Дурова в прошлые разы, снова и в полный рост.
Сама архитектура TON это блокчейнизироанный VK/Telegram, по большому счёту. То есть, работать будет. Телеграм же неплохо работает.
В остальном, сказывается то ли крайняя закрытость их команды, то ли какие-то личные пунктики, но... Просто как самый малозначимый пример, автор по какой-то причине люто ненавидит степени двойки. Поэтому 257 битные инты и 1023 битные блоки. Панк-рок, треш-шок. И так во всём.
😁16🥱5🔥4🤯1
😁7😈3👻31🔥1😱1😢1
У индийцев очень сильная диаспора в ИТ. Они уже практически руководят Силиконовкой. Причем я помню, ещё лет десять назад наши там говорили, что «индусы победили», хотя тогда это было неочевидно.
Поскольку я видимо уже отношусь к диаспоре, прошу меня помотивировать. Где русскоязычные хорошо продвинулись? Брин понятно. Слуцкевер аналогично. JetBrains. Acronis и друзья. Кто ещё? Тут небольшая проблема в том, что практически все скрывают какую либо связь с Россией. Оно и понятно. ГУЛАГ, КГБ, водка, балалайка. И всё же?
🥱5😁3🥴2🤔1
Local-first и децентрализация
#киберпанк_на_раёне
Помню, в 2012 в Екб были протесты и тогда президент по телевизору противопоставлял богомерзких хипстеров нормальным мужикам с УВЗ (это в Тагиле, там танки делают).

И вот теперь мы смотрим, как украинские геймеры и хипстеры с улюлюканьем громят танковые колонны в Курской области и постят видяшки в бложики.

(Это про вчерашнее видео, которое люди с крепкими нервами могут легко найти в телеграме. Я вот лично жалею уже, что стал читать в воскресенье про росийские дела)
🔥4😁2🤨2🤷‍♂1🤔1👌1🥱1🥴1
С 2011 года, а на самом деле дольше, осовной проблемой CRDT были метаданные. То есть, пробему корректной синхронизации решили за счёт версионирования и метаданных, но это было не бесплатно. В RDХ CRDT этой проблемы больше нет и CRDT-in-LSM мало отличается по оверхедам от обычного LSM. На полную статью времени особо нет, но вот основные тезисы
https://github.com/gritzko/librdx/blob/master/brix/METHOD.md
12🔥1👌1
Посоветуйте аккаунты в Мастодоне, пожалуйста. Тема: децентрализация, крипта, local first.
👀2👎1🥴1
Славненький баг от Фёдора Индутного:
1. в криптографии на эллиптических кривых, переиспользование nonce может позволить злоумышленнику вывести из подписи приватный ключ (я не знал про такую интересную возможность!)
2. в npm'ной либе elliptic, это эллиптические кривые на js, nonce выводится из подписываемых данных (странный подход конечно)
3. я так понимаю, protonmail используют эту либу и наверное ещё много кто
🤔7😱4😁31🥱1🥴1
Интересный аргумент за trunk based development.