Local-first и децентрализация
706 subscribers
140 photos
19 videos
3 files
312 links
Replicated Object Notation,
CRDT, распределёнщина и децентрализация.
Ведёт @gritzko
Чат @Ronzgovory
Download Telegram
Один из авторов GitHub Copilot интересно отреагировал на недавние успехи OpenAI. В духе "требую искоренения коррупции или моего участия в ней".
Но эта реакция показывает новый водораздел: или у вас есть данные и вы их обороняете как только можете - или ваши данные лежат у (скажем прямо) вашего хозяина - и он лучше вас знает, как у вас дела. И заменит вас на пару чипов, если это будет целесообразно - все ваши дела и мысли у него записаны.
Какие тут возможности для маленьких игроков уже не очень понятно - откуда у них большие данные. Обмен данных на "удобство" - это обмен золота на стеклянные бусы. Тут можно привести пример Amazon, который или ест участников своей платформы, создавая конкурирующий бренд, ну или просто поднимает "налог", если не хочет возиться. Потому что лучше знает про дела участников, чем сами участники. Кто у них покупает, почему, какие альтернативы, маржа - всё. На каком китайском заводе всё делается - тоже знает.
GitHub превращается точно в такую же историю. Да и Google.
Технофеодализм.
👍13😢61
Допустим, к вам попало Секретное Досье на одного человека и в этом досье написано, что конечно же, человек гомосексуалист (обязательный элемент любого хорошего досье), а затем указаны его преференции. А именно, что нравятся ему: большие жирные негры, нет на самом деле маленькие педерастичные индусы, а нет, на самом деле патлатые ботаники, а нет, не так, лысые крутые ему нравятся. Хотя нет, на самом деле - хромые калеки, а нет, стоп, спортсмены-качки, да, точно, хотя нет, стоп...
Скажите, вы бы что-то тут заподозрили?
😁4🤷‍♂1
Есть базы данных, которые позволяют отматывать версии назад, как git, часто до самого начала. Обычные, понятно, могут только снапшоты сохранять. Помню, был на к.ф.-м.н. защите Лёни Волкова (из-за которого, вероятно, я тут и надоедаю всем шпионскими историями, кстати), так он как раз про такие БД говорил в контексте бухгалтерско-налоговой отчётности. Почему-то у СКБ Контур это была наболевшая тема.
В связи с чем и вопрос: работал ли кто из читателей с такими БД и если да, то в каком контексте?
🤔3😁1
Пошёл второй заход на Чётки (CRDT базу данных очень простого вида). Основное изменение: стала ещё проще.
👍62🔥2👏1😈1👨‍💻1
Local-first и децентрализация
Что нас ведёт обратно к теме про Новое Средневековье. Национальные границы теряют значение, этносы и расы живут вперемешку, единого контроля территории нет. В аэропорту Схипхол сидит смотрящий от Пекина в должности дворника, но наверное уже миллионер. Суверенные…
Чем больше на эти темы размышляю, тем более логичной кажется эта мысль о новом Средневековье. Почему прогресс был медленным в те века? В том числе потому, что каждый инноватор наводил максимум тумана вокруг своей работы - чтоб конкуренты не спёрли. У каждого мастера были свои секреты, которые он только сыну перед смертью расскажет, больше никому. Поэтому, терялась инновация примерно так же часто, как появлялась. Мало ли, инфаркт микарда, не успел, всё. Плюс, максимально защищали рынок сбыта через цеховую систему.
XIX век нам принёс эффективную патентную систему Западного мира. Смысл простой: расскажи, в чём твой секрет, и правительство будет k лет защищать твою монополию. Это был период Дизелей и Эдисонов (Дизель продал патент, не имея пригодного для продажи двигателя, только прототип.)
Что мы имеем сейчас? Вот в связи с конфликтом в Украине некоторые чехвостят российское руководство за отсутствие инноваций. Увы, руководство право - инновации для лузеров. Это дорого и рискованно, а в результате Китай всё скопирует и будет продавать раньше и дешевле, чем вы. И это в лучшем случае - если у вас всё получится. Может Китай будет заниматься инновациями? Вряд ли. Они уже выстроили масштабную систему, заточенную на кражу проверенных технологий, менять работающую систему никто не будет (заработает ли новая - ещё неизвестно). Поэтому - назад в Средневековье. Все максимально наводят туман относительно причин своего успеха и вообще наличия оного. Как старый еврей в романе Вальтера Скотта. Инновациями занимаются только странные люди, а вокруг них уже трётся орава желающих всё украсть, если вдруг заработает.
Как-то так.
11💯6🤔4🤨1😭1
Local-first и децентрализация
Чем больше на эти темы размышляю, тем более логичной кажется эта мысль о новом Средневековье. Почему прогресс был медленным в те века? В том числе потому, что каждый инноватор наводил максимум тумана вокруг своей работы - чтоб конкуренты не спёрли. У каждого…
Вот кстати версия, почему Леонардо писал зеркальным письмом и в своей собственной системе сокращений: чтобы конкуренты идеи не спёрли. (Не спёрли, насколько я только знаю.)
Но если бы он шифровался ещё чуть получше, про него широкие массы и не узнали бы наверное. Была бы это неразгаданная тайна, наряду с манускриптами Войнича - что за летающие механизмы там изображены, кем, почему - непонятно.
🤯93
В ходе курса из Chotki начал расти интересный побег - "protobuf для CRDT", он же RDX, Replicated Data Interchange Format. Он заметно отличается от последних версий RON, что оправдывает смену названия.
(Контекст: "единая библиотека CRDT типов", оно же "единый формат CRDT данных" - это такой Святой Грааль local-first)
2🤡2🤔1
Local-first и децентрализация
В ходе курса из Chotki начал расти интересный побег - "protobuf для CRDT", он же RDX, Replicated Data Interchange Format. Он заметно отличается от последних версий RON, что оправдывает смену названия. (Контекст: "единая библиотека CRDT типов", оно же "единый…
Для новоприбывших поясняю: этот канал долго назывался "RON и тайны децентрализации", потому что автор долгое время работал над RON, форматом сериализации для CRDT. В том плане, чтобы можно было обмениваться данными не только в топологии клиент-сервер, но и в оффлайне и в разных децентрализованных сценариях. На github лежит изрядное количество реализаций RON, все разных версий - это был исследовательский проект. Похоже, количество переходит в качество - RDX выглядит (для меня лично) более зрело. В том плане, в том числе, что непонятно, что ещё можно было бы убрать :)

А задача "убирания лишнего" - это и есть суть вопроса, потому что RON/RDX, в отличие от protobuf/CBOR/JSON/flatbuffers/чегоугодно, содержит метаданные, необходимые для корректной репликации/синхронизации/мержа (которые и портят жизнь всякими патологическими случаями, когда их объём начинает превышать объём данных).
👍71🤔1💩1🤡1🖕1
Кстати, блиц-опрос, пожалуйста без заглядывания в доки. Сколько в protobuf видов интов (целочисленных типов) ?
Anonymous Poll
9%
1
31%
3
37%
6
23%
12
🤔2🤡2
Local-first и децентрализация
Кстати, блиц-опрос, пожалуйста без заглядывания в доки. Сколько в protobuf видов интов (целочисленных типов) ?
84 голоса, 11% 29% 40% 20%
1. int32,
2. int64,
3. uint32,
4. uint64,
5. sint32,
6. sint64,
7. fixed32,
8. fixed64,
9. sfixed32,
10. sfixed64
Получается 10, никто правильно не ответил. Ха-ха. Ну либо 11, если с bool. Ну либо 12, с double и float, но тогда это просто численные типы.
😁10🤡6🤯21
Local-first и децентрализация
Давайте подумаем, какие ещё эксперименты можно ставить на китайских шпионах. Обязательное условие: не должно быть опасности моей жизни.
По-видимому, выкручивание WiFi платки всё ещё работает. Сел в кафе поработать, отошёл на несколько секунд буквально, поворачиваюсь - к ноуту подшмыгнул китаец, внимательно смотрит на экран, запоминает. Зря они так, я всё на GitHub выкладываю.
Странно, что за полтора года ничего вкрутить в ноут не успели.
Или может опасаются, что я как-то найду - это будет ещё неприятней.
🤯12🤣2🤮1💩1🤡1😈1
Испания блокирует Телеграм по жалобам правообладателей (на пиратство). Технически, блокировку должны осуществлять провайдеры. Как в РФ в 2018, помню, пол-интернета глючило, пока Роскомнадзор блокировал случайные диапазоны адресов на всех возможных хостингах. Посмотрим-посмотрим.
👍2🥰21🎉1👌1🍾1
Local-first и децентрализация
Пошёл второй заход на Чётки (CRDT базу данных очень простого вида). Основное изменение: стала ещё проще.
Сегодня утром, хотя и кофе не пил, но что-то нашло, сделал почти все студенческие задания одним махом. Все CRDT типы. FIRST (Float, Int, Reference, String, Tomb~nil) уже были, добавил NZ счётчики (натуральные и целочисленные), ME (мапы и сеты) и вот сейчас смотрю на L (массивы).
Забавность в том, что массивы это Causal Tree, алгоритм, который я же и придумал, но они чуть сложней в реализации.
В конечном счёте NZ и MEL сводятся к iterator heap, это крайне красивая структура данных из LSM баз данных. Что может быть красивей iterator heap? Только iterator heap вложенный в iterator heap (LSM+CRDT).
Такие вот бурные выходные.

P.S. Готовы и каузальные деревья. Тоже через iterator heap.
🔥17🤯5👏31👎1🤡1💊1
Прочитал вот текст Вьюкова, что не бывает безобидных data races. Он там приводит пример очень неожиданных супер-оптимизаций, которые может сделать компилятор, чтобы из вашего доступа двух ниток к инту (который сам безусловно атомарно записывается и читается) тем не менее сделать катастрофу.
Напомнило старый советский анекдот.
Человек прилетел в Грузию, взял такси. Таксист гонит, круто маневрирует, всех обгоняет по встречке, джигит в общем. Впереди красный, таксист - пролетает пулей. У пассажира уже штаны полные. Впереди снова красный. Снова пулей. Пассажир: "Вы почему едете на красный" Таксист: "Патаму чта МАСТЭР!" Гонит дальше, впереди зелёный. Резко раз по тормозам, пассажир лицом бам в доску, кровь, нос держит, спрашивает: "А подему на делёный не едеде?" Таксист: "Слушай, апасна, да? Вдруг там другой мастэр?"
😁16👍5👎1🤡1🥴1
Чотки приобретают относительно играбельный вид. Уже не просто теория распредёлённых типов, а можно узлы пинговать, смотреть как оно мёржится с грехом пополам, даже немношко бенчить.
Декабрь, январь, март - три месяца работы, не полный full-time, но плотно. Пока главное достижение RDX, Chotki всё таки на уровне proof-of-concept пока. Но ещё пара-тройка месяцев работы и будет наверное вполне практически полезно.
Что тут интересного сделано:
1. RDX как сериализация CRDT (кстати обрабатывается без парсинга в объекты, как и нужно делать в БД)
2. RDX впилен в LSM БД через merge operators (рецепт превращения в CRDT годится для RocksDB, Cassandra, всех их клонов и форков)
3. JSON подобный текстовый RDX, парсер на ragel итд (это не JSON всё-таки на экране, это RDX)
4. Довольно забавный механизм пересинхронизации реплик через дельты (лог для синхронизации не нужен)
5. Не менее забавная система объектов и типов (CRDT, они же реплицированные типы, это типы полей, из них состоят объекты, есть "классы" и наследование)
🔥18👍51🤯1
Никита очень успешный предприниматель, 10 лет возгравлял стартап MemSQL (newsql база данных). Сейчас делает постгрес в облаке.
🤔41🤣1