voidlizard.online
117 subscribers
160 photos
6 videos
5 files
105 links
Haskell, распределённые системы.

Разработка P2P CAS hbs2 и приложений для него

Распределенный git aka hbs2-git

hbs2.net

Прочее https://t.me/genedrd47r (мото, EUC, скайдайвинг, дайвинг)
Download Telegram
ладно, возьму microstache
к вопросу об ini, yaml и json:

fixme-attribs assigned workflow resolution

fixme-value-set workflow new backlog wip test fixed done


[ fixme-report all json
(render builtin:microstache report-wip.tpl)
(post builtin:columns | 10 8 8 10 _)
]

[ fixme-report wip json
(render builtin:microstache report-wip.tpl)
(post builtin:columns | 10 8 8 10 _)
(query ?workflow:test)
(query ?workflow:wip)
(query ?workflow:fixed)
(query ?workflow:done)
]

такое вот на них изображать уже не так весело, да?
#fixme подсветка начало fixme в fixme cat, что бы было видно в контексте, какое именно fixme смотрим
Что произойдёт, если пользователю винды/юристу (т.е всякого рода примочки для разрабов у него точно не установлены) отправить в почте файл в формате markdown c юниксовыми переводами строки? Не откроется вообще? Откроется в нотепаде и и все строки склеятся?
#offgrid #hbs2 шифрование контента для групп подвезли. прямо руки трясутся в предвкушении

 шифрование-для-групп -> AccessControlBlock -> Reference -> DAG -> MVP
Суда по бурлению в nix deployment tools, это такой же святой грааль, как во время PHP - CMS. Имеющееся никому не нравится,
все пытаются сделать своё, нормальное. Несходящийся процесс.

Посмотрел какой-то видос (видос! там какая-то девочка медленно зачитывает контент презентации, которую не выложила никуда!!) с медленным
и стрёмным английским, с обзором имеющихся для nix средств деплоймента. Кажется, их больше, чем вообще всех других остальных средств
деплоймента в мире вместе взятых. Что там в мире-то ? Выжило ансибль, да этот, как его.
colmena ничо так
не ну что. подняли ноды разные везде, ноды снюхались и файло друг-другу раздали на приемлемой скорости. UDP для передачи больших объемов это, конечно, гемор еще тот. Через NAT, всё как положено
Что же. Ноды снюхиваются. Через NAT-ы вроде бы как-то пролезают (но это не точно). Референсы в процессе, решили сделать для начала простой вариант с одним автором, что бы не запариваться консенсусом. Вторым делом прикрутим DAG. Как только подъедут ссылки - сразу можно будет опять сделать git-remote. Второй забег до момента self-hosted займет, кажется, два месяца. Первый занял четыре. Да, мы тут не Торвальдс с его self hosted гитом за четыре дня (кстати, реально так-то). Багтрекер из говна и палок тоже работает. Прямо редкий момент, когда всё выглядит неплохо
Forwarded from Dmitry Zuikov
Спросил вопрос про NixOS в русскоязычном чате NixOS.Был накормлен вторичным продуктом. Вспомнил историю успеха получения поддержки в этом чате (равную нулю), и выпилился оттуда. Спросил свой вопрос у ChatGPT. Чувствую, скоро мы все пойдем на мороз
@blaze к твоей реплике про переизобретение QUIC. сейчас в протоколе есть: подпротоколы (различные отдельные FSM), которые работают не мешая друг другу. То есть, если один поток ждёт 4 пакета, то вклинившийся туда пакет от другого подпротокола никак не помешает. Другие FSM занимаются своими делами: пингуют, передают PEX и так далее. В протоколе нет: ACK. Точнее, они есть или нет для подпротоколов. В каких-то (передача данных) - терять ничего нельзя. там есть ACK. В каких-то всё равно, там нет. Вся эта пачка протоколов работает на одном сокете/порту. Чего нет пока - шифрования. С одной стороны шифруются сами данные, с другой стороны просто временно открутили, ничего не мешает вкрутить обратно. Что есть еще: самодеятельный протокол CC, высосанный из пальца из общих соображений, но похожий на какие-то другие известные протоколы. Кажется, до переизобретения QUIC осталось вернуть на место шифрование и вкрутить нормальный CC. Однако, всё это намного меньше, чем QUIC, так как тут не пытались изображать потоки. Протокол ориентирован на датаграммы, просто по несчастью какие-то из них такие большие, что не лезут в один пакет
Тут подумалось, что в прошлом забеге на "распределенный git" был просто git-remote-хэлпер, который требовал явно делать пуш, что бы изменения поехали. но ведь можно лучше:

1) повесить inotify на гит, и на изменение репозитория его автоматом забрасывать в offgrid/hbs2 и делать анонс
2) сделать commit hook, который будет коммит забрасывать в offgrid/hbs2 и делать анонс

таким образом, тут даже не нужно будет никуда ничего пушить - само будет реплицироваться по git commit. немного погодя можно еще повесить inotify на сам каталог исходников,
и по таймеру (что бы не спамить) коммитить в какой-то временный бранч и его синкать - тогда даже незакоммиченные изменения будут сохраняться.
#fixme теперь вместо

fixme set workflow backlog XXXX

можно определить макро в конфиге и писать

fixme backlog XXXX
Есть ощущение, что для пущей крутизны файлы надо уже класть в hbs2, и приделать к нему http, который бы их отдавал по хэшу. тем более, что для этого уже все внутренние ручки есть. nginx только настроить с кэшированием
надо в проект CoC запилить. думаю, такой: НОРМАЛЬНО ДЕЛАЙ - НОРМАЛЬНО БУДЕТ.
То ли сишные приемы дают о себе знать, то ли в GHC 9.2.4 что-то сделали с управлением памятью. Такого вот, что сервер насосался и издох ни разу пока не было. Прокачиваешь гигабайт десять - двадцать, оно надувается, а потом сдувается постепенно до 15 мегабайт футпринта. Причем я даже банги забиваю расставлять, оно само как-то. Ехал кэш через кэш через таймер, который ходит и всё убивает, ровно как в си.
Признавайтесь, кто в нашему кластеру прицепился? Хотя б порт назад откройте, что бы пинговать можно было. Чувствую, пока мутабельные ссылки подъезжают, надо сделать перерыв в реализации гита и запилить NAT-PMP
Так или иначе, но похоже, что полноценно работающий "распределенный" гит до конца этой недели заработает (со ссылками. без ссылок он и так как-то работает). Интересно, что же желать дальше — ликвидировать технический долг? прикручивать криптографию везде, где откручено? Запилить пару шоукейсов (распределенный чат ? шаринг файлов / каталогов ?) Написать какую-то статью/пост о том, как это всё работает (спойлер: наиболее простым и очевидным способом из возможных) Прикрутить другие типы ссылок, а не только линейные с одним писателем ?
Когда работал в Keenetic, смотрел, как делается "операционная система" изнутри - т.е интегрированная куча софта на базе какого-то другого софта + сколько-то своего софта + клей. Всегда было какое-то зудящее чувство, что вот, хорошо бы всё это запилить на каком-то нормальном языке. Там еще и сетевые абстракции свои были, и всё это на подможестве плюсов - плюсы без самого вкусного, т.к. шаблоны раздували код, который не лез на маленькую внутреннюю флешку. Плюс там еще контуженное телекомовское сообщество породило стандарты типа TR-069, короче ехал SOAP через SOAP, можете в UPnP полюбоваться. Короче, впилили эрланг, эрланг в роутер влез (но больше ничего не влезло), но переписать огромную кодовую базу и передизайнить огромную модель на другом языке - с какого-то момента задача неподъемная. Так вот. Тогда в то время возникала какая-то идея, что надо всё потребное, например, для ноута - согнать в какой-то демон на приличном языке, и таскать с собой, время от времени портируя на новые модели железа. Идея умерла, т.к. дело это огромное, но почти бессмысленное. Но в итоге-то, оказалось, что на базе nix + помойка из всего — по факту вполне подъемно для одного. Ведь по сути ты делаешь свою ОС, где всё, как тебе нравится, она может деплоится на разные хосты, а системно-зависимые куски можно как-то абстрагировать. И на это не надо тратить весь остаток жизни. Да, в итоге адовая смесь из nix, haskell, bash, evlish, конфигов и бог знает чего еще. Но оно в целом работает, хоть всё и стрёмно изнутри (и в идеальном мире было бы написано на каком-то нормальном языке), но вроде довольно надёжно и работает. Самый треш, конечно, это когда ты никсом генеришь хакельный код (а не наоборот, как должно было бы быть в нормальном мире).