Local-first и децентрализация
707 subscribers
140 photos
19 videos
3 files
312 links
Replicated Object Notation,
CRDT, распределёнщина и децентрализация.
Ведёт @gritzko
Чат @Ronzgovory
Download Telegram
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
My story:
- as a researcher, I did CRDTs in 2008
- as a developer, I did collab editors in 2012 and sync frameworks in 2014
- now, as a coding mathematician I do a syncable data format.
It is all about the LANGUAGE people and systems use.
🔥9👍63👎2🥴2🥱1😴1
Текст: за буферы, против heap и malloc. Вкратце: жизнь проще, если держать данные одним кирпичом, а не разбрасывать по памяти new/malloc ом.
Можно также считать это агитацией за арены.

https://github.com/gritzko/librdx/blob/master/B.md
👍9👎3🔥32🥴2🥱1
Кстати, Израиль разоблачил уже третью сетку говношпионов. Я ранее писал про Uber шпионаж. Примерно понятно, что это за контингент, готовы за 20 баксов криптой куда то пойти ногами и возможно встрять в историю и сесть.
Но, как оказалось, таких много.
То есть, инновация в духе дрона Шахед, который сбить будет дороже чем сделать. Кстати, вчера два пролетали.
🔥7👎32😁2🥱1🥴1
Local-first и децентрализация
Кстати, Израиль разоблачил уже третью сетку говношпионов. Я ранее писал про Uber шпионаж. Примерно понятно, что это за контингент, готовы за 20 баксов криптой куда то пойти ногами и возможно встрять в историю и сесть. Но, как оказалось, таких много. То есть…
На самом деле многое становится понятно. Вот например был период, когда мне показывали следующее шапито: эти придурки брили голову, подкарауливали, выпрыгивали на дорогу и нагибались буквой Г. Ещё губами делали поцелуйчик. Я не шучу. Хотел бы я шутить.
Такой вот сильный психологический ход. Потом я уже издалека их распознавать начал, по дебильному лицу и странному поведению.

Думаешь, может я уже с катух поехал. Трудно на самом деле так не подумать.

Но если знать, что мой телефон взломан, а один придурок обходится в 20 баксов, то получается менеджер очень среднего звена может на бюджете 2000 баксов пригнать сотню таких дронов. Понятно, КПД будет может 10%, но это все равно копейки. Сижу я, скажем, на балконе второго этажа, а придурки внизу подходят на точку, постоят, потупят, и сваливают. GPS подвёл, вот досада. Но потери тут и до сотки не дотянут.

То есть, в этой новой реальности можно тупо дидосить живым мясом и ни о чём не беспокоиться, это дёшево и риск нулевой.
😁7🥱3🥴3🔥2🤨2👎1
Немножко Иерусалима вам, для разнообразия
🥴1
Кто-то участвовал в таком холиворе, как создание аналога defer в C/C++? Поделитесь методами и выводами.
👎2🥱2👍1🥴1
Тут до меня доехала история TempleOS. Вкратце: страдающий шизофренией программист говорит, что Бог велел ему написать ОС, садится и пишет много лет. Написал. Работает. Критики удивлены. Программист стал интернет звездой, хоть и бездомный, а потом вероятно покончил с собой.
Здесь вызывает уважение, что человек упёрся и доказал. А что он доказал? Что операционку вполне рабочую можно написать в одно рыло. Получается, весь этот Микрософт, вся слежка, реклама, слежка, апдейты по гигабайту, бэкдоры, слежка, ещё слежка эта бесконечная - всё это не необходимое зло, а просто зло.

Тут я стал вспоминать, а что полезного сделали Microsoft за последние 20 лет. Долго напрягал память. Вспомнил, что купили GitHub. Накачали баблом OpenAI (ага, Open). И теперь, обучив AI на коде с GitHub, вроде как собираются заменить программистов. Хотя отзывы об AI коде, как минимум, сдержанные, и даже очень high profile ребята на миллионную аудиторию говорят такие слова, как "scam" и "useless".

Ну так TempleOS показал же, что не нужны уже эти десятки тысяч программистов Microsoft. Вот, получается, достигнут консенсус. А работает AI или нет - не сильно важно тогда уже.

Так так так. Получается, мы не нужны уже? Грустновато. Читаю следующую новость - китайские хакеры залезли в сети основных американских и мировых провайдеров, используя!!! штатные!!!! бекдоры!!!! для прослушки!!! То есть, они прослушивают кого хотят, включая Трампа. По всем букварям и по своему опыту работы в провайдере (да, были при мне инциденты с пролезанием хакеров, не скрою), так вот, единственный способ убедиться, что хакеры "ушли" - выкинуть всё скомпроментированное оборудование и переустановить всё с нуля. Особенно, если это китайцы с их компетенциями в firmware. Недавно также были инциденты с пролазом китайцев во всякие промышленные и коммунальные сети, типа электрики и водоснабжения.

Ну то есть работы-то непочатый край ещё. Может денег на нужное дело не выделяют? С другой стороны - кинут на это бабла, набежит орда придурковатых стартаперов, а потом какой-то новый Билл Гейтс сделает из этого бесконечную кормушку.

Мда. Прям гносеологический кризис какой-то.
👍13😁65👎1🤔1🥱1🥴1