Local-first и децентрализация
Video
Прошла половина учебного года. Я, как и планировал, поигрался с RDX. Об этом чуть далее. А с Darwin (системой контроля версий на RDX) поиграться пока не получилось.
1. Выдача курсача превратилась в балаган (а в ВШЭ я делал со студентами курсач "токенизированный diff" два года назад, получилось очень неплохо, жалею только что не хватило времени и сил дальше раскручивать эту тему). В этот раз, немногие студенты с компетенциями отвалились по тем или иным причинам. Студентов без компетенций (как на подбор, длинноволосые блондины почему-то) набирать смысла не было.
2. Пункт 1 не так обиден только потому, что я тоже подзастрял. По истории коммитов в librdx видно, что я много времени потратил на задачи, которые изначально не рассматривал как важные и нужные. Много сил ушло в переделку skiplog, в JSON-подобный RDX-JDR, в LSM логику. По большому счёту, тут было два направления работы: "RDX как JSON" и "RDX как SST", оба понятно почему важны для RDX в целом и Darwin в частности. В общем, тему удалось укатать нормально, но и времени это отняло прилично.
3. Некоторые темы, на которые было убито много времени и сил, удалось решить словами "а, да это же не нужно совсем". Это конечно умение, которое непонятно как вырабатывать, но очень полезное.
Чтош. Во второй половине всё-таки займусь Дарвиным.
1. Выдача курсача превратилась в балаган (а в ВШЭ я делал со студентами курсач "токенизированный diff" два года назад, получилось очень неплохо, жалею только что не хватило времени и сил дальше раскручивать эту тему). В этот раз, немногие студенты с компетенциями отвалились по тем или иным причинам. Студентов без компетенций (как на подбор, длинноволосые блондины почему-то) набирать смысла не было.
2. Пункт 1 не так обиден только потому, что я тоже подзастрял. По истории коммитов в librdx видно, что я много времени потратил на задачи, которые изначально не рассматривал как важные и нужные. Много сил ушло в переделку skiplog, в JSON-подобный RDX-JDR, в LSM логику. По большому счёту, тут было два направления работы: "RDX как JSON" и "RDX как SST", оба понятно почему важны для RDX в целом и Darwin в частности. В общем, тему удалось укатать нормально, но и времени это отняло прилично.
3. Некоторые темы, на которые было убито много времени и сил, удалось решить словами "а, да это же не нужно совсем". Это конечно умение, которое непонятно как вырабатывать, но очень полезное.
Чтош. Во второй половине всё-таки займусь Дарвиным.
GitHub
GitHub - shishyando/tokenized-myers-diff
Contribute to shishyando/tokenized-myers-diff development by creating an account on GitHub.
🔥5👌2👎1
А с токенизированным diff тема была такая: тот же git diff построчный, что более простая задача, чем посимвольный, но и он частенько несёт пургу. Например, добавление (append) нового метода может понять, как вставку двух половин, если последние строки нового метода совпадают с последними строками метода перед ним.
Когда мы считаем посимвольный diff, такие косяки становятся повсеместны, потому что у символов разнообразие сильно ниже, чем у строк, и алгоритм Майерса чаще пургоносит. В гугловском diff-match-patch прямо по коду видно, как много сил потрачено на борьбу с этим.
Поэтому идея - использовать токенизацию, чтобы считать diff по словам хотя бы. Сначала рассматривали textmate грамматики, но не пошло. LSP довольно тяжёлый вариант, но он как-то сработал, остановились на этом.
А в "конкурирующей фирме" difftastic использовали tree sitter и так пришли к некоторому успеху. В Darwin я попробую прикрутить difftastic.
Когда мы считаем посимвольный diff, такие косяки становятся повсеместны, потому что у символов разнообразие сильно ниже, чем у строк, и алгоритм Майерса чаще пургоносит. В гугловском diff-match-patch прямо по коду видно, как много сил потрачено на борьбу с этим.
Поэтому идея - использовать токенизацию, чтобы считать diff по словам хотя бы. Сначала рассматривали textmate грамматики, но не пошло. LSP довольно тяжёлый вариант, но он как-то сработал, остановились на этом.
А в "конкурирующей фирме" difftastic использовали tree sitter и так пришли к некоторому успеху. В Darwin я попробую прикрутить difftastic.
Хабр
Разоблачаем магию DiffUtil
Каждый Android-разработчик использовал RecyclerView для отображения списков и каждый сталкивался с проблемой обновления данных в списке, пока в 2016 году не появился магический класс DiffUtil . Я на...
❤3👎1
Local-first и децентрализация
А с токенизированным diff тема была такая: тот же git diff построчный, что более простая задача, чем посимвольный, но и он частенько несёт пургу. Например, добавление (append) нового метода может понять, как вставку двух половин, если последние строки нового…
Какой вывод из этой ретроспективы?
Нужно держать в уме конечного пользователя и use case и в имеющемся бюджете по времени и коду доводить до состояния MVP. Пусть криво, зато применимо. Если есть MVP - дальше всё уже как-то само покатится по своей логике.
Если же до этого этапа недотянули, на github остаётся очередной студенческий недострой.
Нужно держать в уме конечного пользователя и use case и в имеющемся бюджете по времени и коду доводить до состояния MVP. Пусть криво, зато применимо. Если есть MVP - дальше всё уже как-то само покатится по своей логике.
Если же до этого этапа недотянули, на github остаётся очередной студенческий недострой.
❤5👍2🥴2👎1💯1
Я тут чехвостил LLM, а вот посмотрел приземление 1й ступени Маска и решил добавить в картину ещё одну точку. Вряд ли у них там нейросетка всё приземляет, её банально обучить не на чем, это второе такое приземление в истории. Аналогично, живого пилота на такую задачу тоже не найти, потому что обучить его не на чем. Но есть программа, которая справляется, с ювелирной точностью.
Alpha Go это переборный алгоритм и нейросетка для нечёткой (интуитивной) оценки позиции. Гарри Каспаров проиграл примерно такому же алгоритму когда-то, перебор + оценка.
Помню ещё в школьные годы слышал, что американцы приземлялись на Луну переборным алгоритмом, а СССР по формуле, получилось более экономично.
Соответственно, получается чёткая градация: когда возможно - лучше по формуле, когда это сложно то есть перебор, когда перебор невозможен - нейросетка.
Alpha Go это переборный алгоритм и нейросетка для нечёткой (интуитивной) оценки позиции. Гарри Каспаров проиграл примерно такому же алгоритму когда-то, перебор + оценка.
Помню ещё в школьные годы слышал, что американцы приземлялись на Луну переборным алгоритмом, а СССР по формуле, получилось более экономично.
Соответственно, получается чёткая градация: когда возможно - лучше по формуле, когда это сложно то есть перебор, когда перебор невозможен - нейросетка.
👍17🔥3❤2👎1🥱1🥴1
Local-first и децентрализация
Подытожу мои разбирательства с BlueSky/Fediverse/ActivityPub. Собственно, тут активистка и соавтор ActivityPub (queer и это всё), все очень нудно и обстоятельно изложила. BlueSky это архитектурно Twitter с некоторым количеством "маркетинговой" децентрализации.…
А вот кстати основатель Matrix объясняет ситуацию. По его словам, все деньги от правительств и корпоратов ушли по тендерам системным интеграторам, которые просто взяли опен сорс версию и где надо сами чуть допилили. Попытки напугать их AGPL закончились, как я понимаю, ничем.
🗿4✍2😍1🤗1😎1
Forwarded from Курс Децентрализованные Системы
Новая лекция про git
https://www.youtube.com/watch?v=qEvzThshAsU
https://www.youtube.com/watch?v=qEvzThshAsU
YouTube
2025 git
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
👍9❤🔥2👎1🔥1👏1
Local-first и децентрализация
Небольшая administrativia. У меня увели почтовый аккаунт gritzko@ya.ru, перерегали на другой телефон. Я его использовал для ВУЗовских дел. До того год долбились в ящик на microsoft, который я не использовал никогда. Но постепенно добрались и до Телеграма и…
Как оказалось, почту уводили, чтобы увести Госуслуги. (Если что, я в начале сентября 22 уехал, с тех пор в РФ не появлялся. Почта была на айфоне, который был взломан.)
😱4🥱2🥴2🫡1
Local-first и децентрализация
У nix праздник: третья сторона смогла повторить билд их минимального ISO. У guix праздник: смогли забутстрапить билд с 357-байтного бинаря.
https://media.ccc.de/v/38c3-sixos-a-nix-os-without-systemd
Европейское хакерство ещё живо. Человек запилил свой nix без systemd, с ядром в EEPROM.
Европейское хакерство ещё живо. Человек запилил свой nix без systemd, с ядром в EEPROM.
media.ccc.de
sixos: a nix os without systemd
This talk announces the first public release of sixos, a two year project to create a nixpkgs-based operating system using skarnet's s6 s...
🔥4🥱2👎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
Выступление на FOSDEM. На более ломаном английском, чем обычно. (Это превью, границы видео немного не там.)
P.S. https://video.fosdem.org/2025/h1308/fosdem-2025-5867-why-don-t-we-have-libsync-yet-.av1.webm
👍9👀6❤3🔥3
Одна из идей для курса децентрализованных систем, которую реализовать не удалось, это создание радио сетей на LoRa. Я лично максимально продвинулся только до того, чтобы вести видеозвонки из лесу, используя дешёвый клон Raspberry Pi и 4G. А сейчас в Восточной Украине уже такие чудят чудеса, что мне лучше не позориться наверное.
У немцев кстати довольно хорошо развит всякий freifunk. По-хорошему завидую.
У немцев кстати довольно хорошо развит всякий freifunk. По-хорошему завидую.
❤8🤔2😢1🥱1
Некоторое время тому меня попросили поразбираться в TON. Текст выкладывать, наверное, не буду, но смысл простой. Всё, в чём упрекали Николая Дурова в прошлые разы, снова и в полный рост.
Сама архитектура TON это блокчейнизироанный VK/Telegram, по большому счёту. То есть, работать будет. Телеграм же неплохо работает.
В остальном, сказывается то ли крайняя закрытость их команды, то ли какие-то личные пунктики, но... Просто как самый малозначимый пример, автор по какой-то причине люто ненавидит степени двойки. Поэтому 257 битные инты и 1023 битные блоки. Панк-рок, треш-шок. И так во всём.
Сама архитектура TON это блокчейнизироанный VK/Telegram, по большому счёту. То есть, работать будет. Телеграм же неплохо работает.
В остальном, сказывается то ли крайняя закрытость их команды, то ли какие-то личные пунктики, но... Просто как самый малозначимый пример, автор по какой-то причине люто ненавидит степени двойки. Поэтому 257 битные инты и 1023 битные блоки. Панк-рок, треш-шок. И так во всём.
😁16🥱5🔥4🤯1
У индийцев очень сильная диаспора в ИТ. Они уже практически руководят Силиконовкой. Причем я помню, ещё лет десять назад наши там говорили, что «индусы победили», хотя тогда это было неочевидно.
Поскольку я видимо уже отношусь к диаспоре, прошу меня помотивировать. Где русскоязычные хорошо продвинулись? Брин понятно. Слуцкевер аналогично. JetBrains. Acronis и друзья. Кто ещё? Тут небольшая проблема в том, что практически все скрывают какую либо связь с Россией. Оно и понятно. ГУЛАГ, КГБ, водка, балалайка. И всё же?
Поскольку я видимо уже отношусь к диаспоре, прошу меня помотивировать. Где русскоязычные хорошо продвинулись? Брин понятно. Слуцкевер аналогично. JetBrains. Acronis и друзья. Кто ещё? Тут небольшая проблема в том, что практически все скрывают какую либо связь с Россией. Оно и понятно. ГУЛАГ, КГБ, водка, балалайка. И всё же?
🥱5😁3🥴2🤔1
Local-first и децентрализация
#киберпанк_на_раёне
Помню, в 2012 в Екб были протесты и тогда президент по телевизору противопоставлял богомерзких хипстеров нормальным мужикам с УВЗ (это в Тагиле, там танки делают).
И вот теперь мы смотрим, как украинские геймеры и хипстеры с улюлюканьем громят танковые колонны в Курской области и постят видяшки в бложики.
(Это про вчерашнее видео, которое люди с крепкими нервами могут легко найти в телеграме. Я вот лично жалею уже, что стал читать в воскресенье про росийские дела)
И вот теперь мы смотрим, как украинские геймеры и хипстеры с улюлюканьем громят танковые колонны в Курской области и постят видяшки в бложики.
(Это про вчерашнее видео, которое люди с крепкими нервами могут легко найти в телеграме. Я вот лично жалею уже, что стал читать в воскресенье про росийские дела)
🔥4😁2🤨2🤷♂1🤔1👌1🥱1🥴1
https://www.coindesk.com/policy/2025/02/07/tornado-cash-developer-alexey-pertsev-set-to-be-released-from-prison
Кто занимался миксерами, как правило, либо сидят, либо их мурыжат. Увы.
Кто занимался миксерами, как правило, либо сидят, либо их мурыжат. Увы.
Coindesk
Tornado Cash Developer Alexey Pertsev Released From Jail to Prepare for Appeal
Last May, Pertsev was sentenced to 64 months in prison for money laundering.
🤔3❤1👎1😢1👌1🥱1🌚1
С 2011 года, а на самом деле дольше, осовной проблемой CRDT были метаданные. То есть, пробему корректной синхронизации решили за счёт версионирования и метаданных, но это было не бесплатно. В RDХ CRDT этой проблемы больше нет и CRDT-in-LSM мало отличается по оверхедам от обычного LSM. На полную статью времени особо нет, но вот основные тезисы
https://github.com/gritzko/librdx/blob/master/brix/METHOD.md
https://github.com/gritzko/librdx/blob/master/brix/METHOD.md
GitHub
librdx/brix/METHOD.md at master · gritzko/librdx
Replicated Data eXchange format C lib . Contribute to gritzko/librdx development by creating an account on GitHub.
❤12🔥1👌1
Посоветуйте аккаунты в Мастодоне, пожалуйста. Тема: децентрализация, крипта, local first.
👀2👎1🥴1
Славненький баг от Фёдора Индутного:
1. в криптографии на эллиптических кривых, переиспользование nonce может позволить злоумышленнику вывести из подписи приватный ключ (я не знал про такую интересную возможность!)
2. в npm'ной либе elliptic, это эллиптические кривые на js, nonce выводится из подписываемых данных (странный подход конечно)
3. я так понимаю, protonmail используют эту либу и наверное ещё много кто
1. в криптографии на эллиптических кривых, переиспользование nonce может позволить злоумышленнику вывести из подписи приватный ключ (я не знал про такую интересную возможность!)
2. в npm'ной либе elliptic, это эллиптические кривые на js, nonce выводится из подписываемых данных (странный подход конечно)
3. я так понимаю, protonmail используют эту либу и наверное ещё много кто
GitHub
Private key extraction in ECDSA upon signing a malformed input (e.g. a string)
### Summary
Private key can be extracted from ECDSA signature upon signing a malformed input (e.g. a string or a number), which could e.g. come from JSON network input
Note that `elliptic` by...
Private key can be extracted from ECDSA signature upon signing a malformed input (e.g. a string or a number), which could e.g. come from JSON network input
Note that `elliptic` by...
🤔7😱4😁3❤1🥱1🥴1
Интересный аргумент за trunk based development.
7 апреля git исполнится 20 лет. Между тем, в чате automerge я почитал ряд ведущих децентрализаторов и в общем все используют модель git (граф коммитов).
Кто-то знает хорошие примеры не-Merkle-DAG подхода к децентрализованным системам?
Кто-то знает хорошие примеры не-Merkle-DAG подхода к децентрализованным системам?
🥴2🥱1