Обновить
2
0

Пользователь

Отправить сообщение

Я пытаюсь сделать именно СУБД с таблицами и с запросами по одной таблице - хотя бы уровня SELECT без JOIN'ов и GROUP BY по функционалу - сам язык SQL для этого необязательно делать. Каждая таблица - это директория с набором файлов-сегментов типа 0.seg, 1.seg, 2.seg, и т.д. по мере накопления данных. Когда файл вырастает большой, начинаем писать новый, а старый сжимается блоками и фиксируется навсегда как read-only файл - его можно раздавать и кешировать. Если элемент обновился, он уже попадёт в новый сегмент, а в архиве зависнет старая версия. Чтобы найти именно последнюю версию, надо у сервера спросить карту, которая скажет, в каком архиве последняя версия или она ещё в живом сегменте.

По сути, сегмент таблицы - это массив байт в начале и массив смещений элементов в конце плюс другие метаданные для поиска (даты и т.п.). Первым запросом читаем конец файла - смещения и другие метаданные сегмента, проходимся по ним на клиенте, а вторым по найденному смещению достаём сами данные сжатого блока, где лежит искомый элемент.
В своей СУБД сразу делаю VFS, чтобы можно было работать как с БД в памяти, так и в локальном файле или удалённом сервере без необходимости что-то монтировать в ОС.

SQLite через абстракцию от ФС тоже можно заставить работать, но это будет медленно, так как она не приспособлена для таких задержек. Там B-деревья и сканирование по строкам с множеством чтений файла друг за другом - пинг будет складываться. И её неудобно пилить на много файлов, потому что каждый станет своей отдельной БД. Там оверхед на метаданные, и сжатие только через плагины, причём менее эффективное, так как вроде мелкими блоками работает.

Другое дело - своя СУБД, специально предназначенную для поиска элементов за минимальное количество прыжков по файлу - за 2, и автоматическую упаковку старых данных в отдельные read-only файлы. Постепенно такие архивные файлы будут копиться, но сервер БД всегда будет работать только с текущим не дописанным сегментом и держать компактную карту с интервалами ключей, по которым можно определить какие файлы-архивы стоит смотреть для запроса. А в архивах будет искать сам клиент, предварительно получив актуальную карту с сервера. Большую часть карты можно тоже хранить в архивах, а с сервера только получать дельту, можно даже в режиме реал-тайм подписки.

Cloudflare бесплатно проксирует же, правда в РФ с ним проблемы, но я нашёл некоторые костыли, чтобы только для блокирующих его провайдеров использовалась прокси-VPS. Конечно при большой нагрузке Cloudflare может прийти с требованием платить, но это вроде очень большая нагрузка должна быть. Вряд ли это случится до того, как я хорошо заработаю на своём проекте, и это станет неважным. А если не заработаю, то и не придут, смогу поддерживать его в рабочем состоянии практически бесплатно.
Как минимум, не надо платить за вычисления, можно захостить всё на слабом серваке с большими дисками и быстрой сетью. И моя СУБД хорошо экономит место и трафик за счёт блочного сжатия большей части данных и упаковки метаданных. Если традиционные БД весят намного больше, чем сырые данные, которые там лежат, то у меня будет в разы меньше.
Не понял, зачем мне минус поставили. Неужели такая архитектура никому не интересна? Даже если идея выкладывать данные на всеобщее обозрение кажется стрёмной, можно ведь захостить её внутри контура компании, а клиентами сделать бекенд, любое количество микросервисов и т.п., и БД не будет боттлнеком даже если вырастет до терабайтов.

Не шутка. Я пишу свою соцсеть, где пользователи смогут писать код шейдеров и не только, всё выполняться в браузере и публиковаться как посты. В общем , убийца ShaderToy. Искал решения, как сделать это, чтобы потом практически не платить за инфраструктуру. Придумал такую СУБД, публичные фрагменты которой можно выложить на CDN и по HTTP Range-запросами находить всё, что надо, прямо с клиента. Бекенд только будет изредка выдавать карту, чтобы клиент знал, где искать актуальную версию данных, а также для записи и данных, требующих контроля. И то скорее всего такие данные будут тоже на CDN, но в зашифрованном виде, а бекенд будет только ключи выдавать.

В России как минимум мобильные операторы блочат Cloudflare. Мне пришлось для них настраивать редирект напрямую на свою VPS, которая проксировала с Cloudflare.

Я как раз сейчас делаю свою СУБД с нейронками. Я уже давно придумал уникальную СУБД, которая позволит разгрузить бекенд и переложить большую часть нагрузки на самих клиентов, чтобы даже моя VPS за 75₽ в месяц потянула мою будущую соцсеть даже с десятками тысяч пользователей. Некогда было ей заняться, а с нейронками дело пошло.

Разве Cloudflare ZeroTrust ещё где-то работает в РФ? У меня летом все туннели отвалились, пришлось через frp на VPS делать.

Я тоже пришёл к подобным выводам, но на макбуке с M4 Pro. Пробовал обучать простую MLP модель в Keras на GPU, обучалась медленно. Кажется, было очень много синхронизаций CPU и GPU, GPU не нагружался толком. Когда перешёл на CPU, оказалось, что он в одном потоке в разы быстрее! Можно было параллельно обучать несколько моделей с разными гиперпараметрами на разных ядрах, чтобы быстрее найти лучшую конфигурацию.

А там не надо. Пользуюсь без аккаунта. Даже фичи ИИ доступны без аккаунта, но с более строгими лимитами.

Вообще мне его ChatGPT рекомендовал, как очень оптимизированный и легковесный терминал. Но я на него так и не перешёл полностью, пока не привык к тому, что он не похож ни на один другой терминал.

Я иак понял, от QuikSharp там только серверная часть? А если я пишу на TypeScript/Node.js, то мне надо переписать только один файл QuikPy.py на TypeScript? Это весь биндинг на клиентской стороне?

Для поддержки GCC 8 можно не отказываться от концептов, а просто добавить флаг -fconcepts и сделать `#define concept concept bool`

Я так делаю в рабочем проекте, который использует нетривиальные концепты и собирается в GCC 8+. Но не знаю насчёт стандартного хедера с готовыми концептами, я сам определяю все концепты. В теории, -fconcepts можно даже в GCC 6 использовать, но я не пробовал, так как мне достаточно поддержки GCC 8.

Так что enable_if можно забыть, как страшный сон.

Вообще-то там 7 ГБ SSD. Тоже пользуюсь три года уже, тогда он стоил 55₽ и было 768 МБ, потом повысили. Ни разу он сам не перезагружался. Иногда зависал, но видимо меня заддосили, кончилась память, и ушёл в swap. Ну и сам сервер конечно медленный, думаю конкуренты в статье шустрее по большинству параметров. Но как самый дешёвый VPS с легковесными сервисами, прокси и пробросом домашнего сервера с серым IP через FRP вполне норм. Правда через прокси многие российские сайты с капчей пристают постоянно, особенно если не залогинен.

Я уже три года пользуюсь, туда прокси поставил. Как уже написали, Gemini не работает, ещё заметил, что intel.com не работает. Как-то определяет Россию несмотря на локацию IP Нидерланды. Остальное работает хорошо. Я его выбрал, когда цена была вроде 130 рублей, и он был самым дешёвым сервером за границей с оплатой российской картой. А потом они перешли на цены в баксах и пришлось платить $3. Переходить куда-то ещё было лень.

У меня примерно неделю уже как отвалились все Cloudflare Tunnel. Не знаю, как с проводным интернетом, но по 4G билайна в Московской области cloudflared выдаёт TLS Timeout и не может создать туннель. Проводного интернета в моё СНТ не провели.

Думаю теперь пробрасывать свои сервисы через frp на VPS, но тогда я упрусь в её пропускную способность. А Cloudflare Tunnel имели кеширование вроде, ускоряя повторное скачивание файлов.

Я как-то столкнулся с тем, что загрузил линукс с флешки, и после этого винда перестала грузиться, прося по-китайски ввести ключ шифрования.

К счастью, смог с телефона зайти на Майкрософт, нашёл там ключ. Но так ведь у кого угодно можно авторасшифровку сломать флешкой, если биос не залочен. А я специально флешку заводил, чтобы грузиться в свою настроенную систему с любого компа в любом месте.

Как-то всё очень сложно.

У меня есть меньше 1 ТБ данных, которые жалко потерять. Туда входят фотки с видео и скачанные курсы, которые я покупал, и к которым уже нет доступа, а также бекапы рабочих файлов. Я это дублирую на Яндекс Диске, на SSD, подключённом к роутеру, и иногда синхронизирую на внешний HDD. Все рабочие файлы (меньше 10 ГБ) у меня синхронизируются между роутером и всеми моими компами через Syncthing, что позволяет мне в любой момент пересесть с одного на другой и продолжить работу там, где остановился. Кроме того, они каждую ночь бекапятся на Яндекс Диск через restic.

Есть внешний китайский SSD, забитый установленными портабельными играми на 2 ТБ. Можно в любой момент вставить и поиграть. Их копия есть на втором внешнем HDD на всякий случай, если SSD сдохнет или потеряет данные.

На SSD, подключённом к роутеру, также есть файлопомойка-кеш инсталляторов, фильмов и нейросетей, скачанных с Интернета. Если умрёт, можно перекачать заново. Но у меня лимитный мобильный интернет в частном доме, и пока есть место на первом внешнем HDD для хранения копии.

Итого, доступ к файлопомойке у меня только из дома по SMB. Актуальные фотки могу посмотреть из облака или телефона когда угодно. Рабочие файлы есть на всех компах и в гите, куда могу зайти с телефона.

Думаю ещё поставить мини-ПК в квартиру, где смогу качать файлы и торренты и хостить свои Docker-сервисы, включая VS Code Server + Syncthing, чтобы можно было откуда угодно даже с телефона кодить, если вдруг очень припрёт или захочется. На нём также можно хостить виртуалки с разными ОС для CI, если не хватит бесплатного GitHub Actions. Доступ к сервисам обеспечиваю через Cloudflare Tunnel.

Есть дешёвая VPS с XRay-прокси для обхода ограничений оператора. Туда также смогу захостить сервисы, которые пишу сам, а они у меня не требовательны к ресурсам.

VPN для доступа в домашнюю сеть мне как таковой не нужен, да и проблематично это. Многие, если не все протоколы, которые поддерживает мой роутер, оператор блокирует даже внутри страны. Но наверное как-то можно завернуть в прокси или руками поставить через Entware какую-нибудь Amnezia, если понадобится.

А полные бекапы системы делать не вижу смысла. Если что переустановлю и поставлю софт заново. Потрачу день. Чаще всего я это делаю, только когда перехожу на другую ОС или другой комп, куда образ всё равно не перенести.

Даже кастомную прошивку необязательно ставить. Я на стоке ASUSWRT поставил xray - это статически собранный бинарь без зависимостей, заводится везде, где есть возможность его запустить по SSH. И через iptables направил трафик через XRay.

На моей прошивке даже есть пути с постоянной памятью, куда можно положить бинарь и конфиг к нему.

Но автозапуск на стоке настроить получилось только через накопитель, подключённый к USB-порту. При монтировании оттуда запускается скрипт. Других способов настроить автозапуск на моей прошивке я не нашёл. На Merlin есть, но она пока не поддерживает мой роутер.

Вы торгуете на каком-то определенном таймфрейме или сразу нескольких? Ведь рынок - это матрёшка. Маленькое движение может быть частью большого, и может быть есть смысл не фиксировать всю прибыль, а оставить часть позиции для большей идеи. Учитываете ли вы это как-то или торгуете изолированно каждую идею?

Я и так печатаю быстрее, чем думаю в большинстве случаев. А часть остальных случаев покрывает автодополнение ИИ. Он во многих простых вещах, которые повторяются, предлагает именно то, что я собирался написать сам, так что мне только остаётся нажать Tab.

Ни разу не было мысли освоить 10-пальцевый метод. Могу печатать по-русски даже без размеченной кириллицы на клавиатуре ноутбука. Если не смотреть на клавиатуру, тоже могу печатать, но поначалу с ошибками - каждый раз нужно время, чтобы приспособиться.

Ну и на телефоне этот метод всё равно не подойдёт, а именно тут было бы актуальнее делать меньше опечаток, так как исправлять их сложнее.

Только что залил: https://github.com/devoln/nocker
Ещё не тестировал на самом Андроиде, и chroot-вариант тоже не особо тестировал. Пока разрабатываю, тестирую только в Ubuntu 24.04. chroot пока менее функционален, так как там не работает переназначение портов.
Буду тестировать на Android, когда реализую build хотя бы на уровне, достаточном, чтобы поднять мою несложную хоум-лабу.

Кнопка по-русски называется не "Причина", а "Обоснуй".

Информация

В рейтинге
6 504-й
Зарегистрирован
Активность