Local-first и децентрализация
707 subscribers
140 photos
19 videos
3 files
312 links
Replicated Object Notation,
CRDT, распределёнщина и децентрализация.
Ведёт @gritzko
Чат @Ronzgovory
Download Telegram
Очень трудно работать, двигать науку и преподавать, когда за тобой ездит орава обосрышей и ежедневно строит пакости. Серьезные такие пакости.
😇3🤯2🥱2🥴2😁1
Я зарекался что то про СВОйну здесь постить. Но уж больно смешно.
🥴1😴1
На пунктах управления десятков соединений упали трансляции с беспилотников работающие через закрытые комнаты дискорд.

Таким образом отбросив всех на уровень марта 2022 года.

Такого даже хохлы с Америкой сделать не смогли.
🤣17🕊1🤨1
Я лекции через Дискорд с Ютубом веду. Получается уже двойной мощный удар.
🤯4🍾3🎉1
https://news.ycombinator.com/item?id=41805446
Soul breaker сезона - цены на рынке аренды GPU.
Комментировать не буду. Если кто в теме, пишите что думаете.
🥱4🤔1😴1
В ближайшие недели, я движусь по маршруту Дубай-Ларнака-Тель-Авив. У кого есть мысль выпить кофе, обсудить дела - напишите пожалуйста в приват.
👍3👎1🥱1
Генерация парсеров в ABC уже нормально так работает. Добавил парсер JSON за два дня. Собственно, грамматика, формат дерева JSON в памяти (простой массив), немного изоленты и всё. Дальше работает мой генератор, потом Ragel. На выходе нечитаемый код парсера, который можно потом скормить ChatGPT для смеху.
И это всё лёгкая разминка перед написанием
парсера RDX (текстового, JSON подобного). В простых случаях RDX-текстовый вообще неотличим от JSON.
Зачем мне нужен RDX-текстовый? Чтобы писать тесты. Много тестов. Очень назрело, тем более что реализации уже две.
Такой вот backtrace.
🔥53👍2🥴2🥱1
История сделала круг. Я помню времена до интернета, когда малварь распространялась на дискетках. Оказывается, теперь это супер-пупер трюк для заражения air-gapped/оффлайновых компьютеров. Только на флешках уже, но приёмы те же.
🔥4🥴3😁1🥱1
Local-first и децентрализация
RDX приобретает красивый и формальный вид
Собственно, тут я стараюсь показать на практике, как выглядит моя идея полезной комбинаторики: примитивы должны были ортогональны и свободно комбинироваться, без добавления уровней абстракции.
А вот межглючные взаимодействия нужно сводить к минимуму.
Комбинаторика первого должна обгонять комбинаторику второго :)

Пример. JSON овский объект {“key”:123} декомпозируем в два ортогональных типа, set {1,2,3} и tuple “key”:123. И Map тогда получается, как множество пар. На сдачу мы можем теперь иметь чистые tuples (кортежи) и sets (множества) и произвольным образом это всё комбинировать. Кортежи могут быть произвольной ширины, 7.25:EUR или Иван:Петров:2002:МТ305. Кладём такие широкие tuples в массив, получаем реляционную таблицу, и так далее.

То есть, мы берем в общем те же примитивы, из которых сделан JSON и делаем на порядок более гибкий, версионированный формат. То есть структурный diff/patch/merge получается практически бесплатно, из определений. И в плане структур данных, мы можем получить всю таблицу Менделеева.

В бинарной TLV версии всё ещё проще.

Подробно - по ссылкам (англ)
👍10👎2🔥1🥱1🥴1
В догонку, привет из реального мира
👍8🥱2🤨2
👍7🥱3🤨2🥴1
Кстати. Если кто не заметил, тут появился хейтер с двумя sockpuppet аккаунтами. Одновременно появляются по три негативных эмоджи под каждым постом.
Но иногда ленится и ставит по два. Призываю не лениться. В этом канале, поведение должно быть консистентным у всех!
😁36🥱97🥴6👍5💅5👎4👾1
Помню, я ещё студентом на 2 курсе читал Компьютерру пол-года. Внимательно так читал, на лекциях скучно было после СУНЦа. Потом перестало быть интересно. Помню там была большая статья, а это 1998 примерно год, с посылом "Хватит писать опердни". В том плане, что все пишут опердни, они во всех случаях устроены очень похоже, это должен быть один продукт, ну или два конкурирующих.

И вот, недавно общаюсь с людьми из одной российской компании, занимающейся разработкой БД. Про RDX. Один из первых вопросов: "вот если я пишу опердень на постгресе, как мне поможет ваша технология?"

В ушах зазвучала музыка из Warhammer. THE HERETIC. THE MUTANT. THE ALIEN.

Это игровая вселенная, где галактикой 10000 лет правит один император. Прогресса нет. Бесчисленные поколения солдат сражаются одним автоматом. Геройски погибают. Автомат не погибает, он сделан из очень толстого чугуния.
😁19👎4🥴2👍1🥱1
Теперь про RDX. Для меня история выглядит так. 1984 году Leslie Lamport формализует репликацию через конечные автоматы (state machine approach). 1990 Fred Schneider в обзорной статье "Implementing Fault-Tolerant Services Using the State Machine Approach: A Tutorial" подмечает, что если бы операции были коммутативны, это открыло бы новые возможности. А реальные операции часто коммутативны, в той или иной степени. То есть, идеи CRDT повитали в воздухе еще тогда, но ни во что не вылились.
Просто потому, что даже интернета ещё толком не было и любая БД помещалась на сервер. И нормально, много софта было тогда написано и IBM до сих пор жирно живёт это всё поддерживая.
Приключениям трёх мушкетёров Postgres-MS SQL-Oracle и дартаньяна MySQL, и посвящён первый том истории баз данных.
👍103👎3🥱2🔥1🥴1
Далее, второй том этой приключенческой саги начал писаться с появлением интернет-гигантов, Google, Facebook, присоединившийся к ним Apple, итд. БД уже точно не помещались на сервер или даже несколько серверов. Нужно было прям тучу серверов (ну или облако).
Тут уже появилось семейство кассандровых, БД где мёрж это важная операция, на которой всё и построено - серверов тысячи, единого лога нет, единого порядка операций нет, да он и не нужен.
Что там творится в Google пусть эксперты расскажут, но семейство LevelDB/RocksDB/Pebble происходит оттуда. Это вроде бы побочные потомки BigTable.
Apple является крупнейшим эксплуатантом Кассандры.
Discord недавно переехал с Кассандры на Сциллу.
👍11👎43🥴2🔥1🥱1
Соответственно, "третий том" интересных подвижек, где мерж уже абсолютно краеуголен, связан с попытками сделать клиент (смартфон) полноценной частью системы с полноценной БД, которая синхронизируется с сервером. Это очень тернистый путь, я могу назвать тех, у кого не получилось, тех у кого получилось не то и тех, у кого хоть что-то получилось.
И RDX это история из вот этого третьего тома.
👍83👎3🔥3🥱2🥴1
Это я к тому, что алгоритм мёржа очень хорошо получился в новой итерации, я прямо рад сегодня.
Сам формат данных минималистичный и ортогональный, и мёрж тоже.
👍7🔥54👎4👏1🥱1🥴1
Хейтер как на работу сюда ходит со своими аккаунтами. Я, вероятно, оставлю только одно доступное эмодзи 🔥. Оно будет означать либо "тема огонь!" либо "гори в аду!" То есть будет такая интригующая недосказанность.
🔥20😁9🥴9🥱5👎4🌚3💔3🍓3👍2🕊1😈1
Начинающий программист пугается, когда программа ведёт себя не так.
Опытный пугается, когда программа ведёт себя как надо, хотя я же это ещё не кодил!
    $ cat test.rdxj 
{1:2},
{1@2-2:6},
{eight},
$ cat test2.rdxj
{3:4,4:5,"seven"}
$ rdx merge test.rdxj test2.rdxj | rdx j
{<@2-2 1:6>,3:4,4:5,"seven",eight}
😁15🤔3👎2🔥2