惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Archives - TechRepublic
Security Archives - TechRepublic
T
The Exploit Database - CXSecurity.com
P
Proofpoint News Feed
Scott Helme
Scott Helme
NISL@THU
NISL@THU
Cisco Talos Blog
Cisco Talos Blog
C
Cybersecurity and Infrastructure Security Agency CISA
AWS News Blog
AWS News Blog
V
Vulnerabilities – Threatpost
J
Java Code Geeks
U
Unit 42
The GitHub Blog
The GitHub Blog
H
Help Net Security
T
Tenable Blog
aimingoo的专栏
aimingoo的专栏
Jina AI
Jina AI
Spread Privacy
Spread Privacy
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
L
Lohrmann on Cybersecurity
T
Threatpost
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Engineering at Meta
Engineering at Meta
A
About on SuperTechFans
I
InfoQ
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog
L
LINUX DO - 最新话题
K
Kaspersky official blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Threat Research - Cisco Blogs
C
Check Point Blog
T
The Blog of Author Tim Ferriss
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
Help Net Security
Help Net Security
Google DeepMind News
Google DeepMind News
A
Arctic Wolf
Y
Y Combinator Blog
N
News | PayPal Newsroom
M
MIT News - Artificial intelligence
Latest news
Latest news
H
Hacker News: Front Page
Blog — PlanetScale
Blog — PlanetScale
腾讯CDC
I
Intezer
爱范儿
爱范儿
F
Fortinet All Blogs
P
Palo Alto Networks Blog
C
CERT Recently Published Vulnerability Notes

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
«Эстафета хвоста» — о ветвлении и извлечении веток для форумного движка «сервера-слоя»
accurate_ran · 2026-05-04 · via Все публикации подряд на Хабре

«Эстафета хвоста» — о ветвлении и извлечении веток для форумного движка «сервера-слоя»

Время на прочтение13 мин

Охват и читатели1K

Recovery Mode

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

Скрытый текст

В весной прошлого года, чтобы не наступить себе на "хвост" подал заявку, и в общем-то готово: патент на ПМ полного сумматора на элементах трёх состояний. И что же далее, а далее я начал думать как реализовать 3D принтер для печати чипов, лазерный. Упёрся в задачу высокоточного привода и подумав решил, что самый простой способ - наматывать резьбу (нарезать винт с таким шагом нереально) из нихромовой проволоки (она продаётся и длиной до 50 метров и более, кстати приготовьтесь - предыстория разматывается в длинную череду, прям как нить нихрома, или какие там ещё есть), а потом обжимать её фторопластовыми заготовками, с предварительно подогретыми рабочими поверхностями, делать оттиском ответную резьбу на заготовках сборной гайки. И таким образом я смогу получить высокоточные привода. Идея мне понравилась и я начал писать очередной аддон (предыдущий был для использования Blender 3D в качестве наглядного пособия для изучения разных материалов, требующего визуализации и работы с текстом, работает на базе апдейта коллекций в 2019 вроде https://github.com/Andrei-Y/doc-manager ) для генерации оптимизированных мешей деталей. Это я уже задумал генеративный дизайн с топологической оптимизацией. И вот тут стрельнуло пока я печатал модульный конструктор для быстросборных и разборных стендов для испытания всякой чепухи (ну короче я всё неиспытанное и непроверенное считаю чепухой, потому что техника). А именно - начала деформироваться плёнка ванночки, что было крайне неприятно наблюдать, даже зная что это всего-лишь расходник. И было совершенно понятно, что делают это базовые слои печатаемые фотополимерником, и так же понятно, что их можно печататать в шахматном или другом порядке, возвращая стол на прежнюю позицию по оси Z, но с меньшей скоростью, чтобы смола успевала отойти не оказывая давления на плёнку, и тем самым - уменьшить деформацию плёнки - уж очень блезненно она переживает отрыв базового слоя от неё, а с настройками я наэкспериментировался. Тогда я задал вопрос на портале мэйкеров, но мне умные менеджеры сказали, что когда нехватает денег на запрещённые вещества - 3D принтер не нужен. Вот тут-то я и задумался - а ведь действительно всё под их контролем, кто контролирует прибыль - контролирует всё. Но я не отчаялся и задал вопрос о расшифровке файла задания производителю. На что доктор технических наук их компании, ранее просивший задавать ему вопросы, решил уйти в безвременный отпуск. Ну оно и понятно - формат ведь проприетарный, и никто не хочет терять работу по причине собственной болтливости. Ситуация ещё более обострила внимание на то, что всем управляет тот, кто контролирует прибыль. То-есть дело даже не в том, что он хорошего сделал или сделает, а просто имеет доступ к совершению данного действия. И тогда мне пришла идея создания сервера-слоя. Книга у меня валялась несколько лет, как запустить Линукс сервер, но я не знал зачем он мне. И вот тут понял чем можно отвечать людям, пытающимся брать под контроль любую прибыль (и свою и чужую): если просто запустить сервер - он просто уйдёт в аут, потому как всё контролируют контролирующие прибыль. И тут нужно нечто более умное и гибкое. Лучшая ассоциация всплывает из сериала чужой - планета земля, есть там такой умный паразит как глазок, но нам чужого не надо - нам защитить своё, создать слой, который- бы укреплял-дополнял существующую сеть и создавал некое пространство. Что будет в этом пространстве двустороння свзь с существующими порталами, система знаний формирующаяся с помощью AI и участников, жёсткая модерация и рспределение балов. И как-бы я это хотел реализовать? Если у Вас крепкие нервы - прошу под второй спойлер

Скрытый текст

Да, в современном веб-разработке и аналитике графы и графический анализ данных действительно набирают популярность и занимают значимое место. Это связано с растущей сложностью данных, необходимостью анализировать взаимосвязи между объектами и решать задачи, которые трудно эффективно реализовать с помощью традиционных реляционных баз данных. linkurious.com +2

Почему графы становятся востребованными

  1. Рост объёма взаимосвязанных данных. В современном цифровом мире данные всё чаще представляют собой сложные сети связей: социальные взаимодействия, транзакции, логистические цепочки, взаимодействия в онлайн-сервисах. Графы естественным образом моделируют такие структуры, где узлы — объекты, а рёбра — связи между ними. proglib.io +2

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

  3. Применение в ключевых отраслях. Графы используются в:

    • Социальных сетях — для рекомендаций друзей, контента, анализа сообществ. proglib.io +1

    • E-commerce — персонализированные рекомендации товаров, оптимизация корзин покупок. 

    • Кибербезопасности и финтехе — обнаружение мошенничества, отмывания денег, компрометации учётных записей. sky.pro +2

    • Здравоохранении — анализ связей между заболеваниями, лекарствами, пациентами. 

    • Логистике и управлении цепочками поставок — оптимизация маршрутов, отслеживание грузов. 

    • IT и телекоммуникациях — управление сетевой инфраструктурой, прогнозирование сбоев. 

  4. Интеграция с ИИ и машинным обучением. Графы позволяют представлять знания в структурированной форме (графы знаний), что улучшает работу больших языковых моделей и других ИИ-систем. Это повышает точность предсказаний и анализа. Например, графы используются для обогащения данных в генеративных ИИ-приложениях. linkurious.com +1

  5. Облачные решения и масштабируемость. Развитие облачных платформ упрощает развёртывание и масштабирование графовых баз данных без необходимости в обширной локальной инфраструктуре. Это делает технологию доступной для широкого круга компаний. 

Графический анализ данных

Графический анализ включает методы обработки и визуализации графовых структур для выявления паттернов, центральности узлов, кластеров и аномалий. Ключевые аспекты:

  • Алгоритмы обхода графа (поиск в ширину, в глубину) для анализа связности и путей. 

  • Метрики центральности (степень вершины, междуness-центральность) для определения влиятельных узлов. 

  • Обнаружение сообществ и кластеров в графах. 

  • Визуализация для наглядного представления графов и результатов анализа. Существуют специализированные библиотеки (например, NetworkX, Graphviz) и инструменты для визуализации. 

Тенденции развития

  • Стандартизация. В 2024 году был выпущен стандартизированный язык запросов для графов — GQL (Graph Query Language Standard). 

  • Гибридные решения. Интеграция графовых баз с другими типами хранилищ данных (например, с SQL-базами через PGQL — Property Graph Query Language). 

  • Графовые нейронные сети (GNN). Использование нейросетей для анализа графов, что открывает новые возможности в машинном обучении. 

Ограничения и вызовы

Несмотря на рост популярности, графовые технологии не лишены проблем:

  • Сложность внедрения. Требуют глубоких знаний теории графов и специфических инструментов.

  • Высокие требования к ресурсам для обработки очень больших графов.

  • Необходимость адаптации существующих систем. Переход с реляционных баз данных может быть непростым.

  • Безопасность данных. В регулируемых отраслях (финансы, здравоохранение) компании часто предпочитают локальные решения из-за требований к конфиденциальности. 

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

.

Так же давненько у меня валялся джетсон нано, на четыре гига, и я быстренько собрал на нём нужную версию Lazarus, установил на него BGRABitmap, и решил рендерить анализ и завести на нём стаю AI ассистентов разного рода, но ведущим будет зрячий, так как у меня альтернатива свёрточным нейросетям . И в общем джетсон будет работать в двух режимах, помимо остальных, рендер и обработка изображений. Ну и в общем, когда продумал тонкости связей с глобальной сетью, и понял актуальность задачи - переключился с очередного аддона на сервер-слой. На джетсоне запускал. Сейчас в разработке, но есть результаты - форумный движок собственной архитектуры.

Не стану томить больше текстами, просто вставлю описание с вики своего репозитория. Но сначала опишу то, чего там нет.

Планируемая визуализация

Планируется нечто вроде космоса 2D или 2.5D на базе BGRABitmap и сэмплов подготовленных там-же. Визуализация будет заточена под обработку нейросетью. Кстати после публикации в блоге на киберфорум сразу вышел режим космических боёв, но я готовил не для битв - это будет система знаний, с подробной хронологией, системой баллов и их оборотов между участниками. Нет - денег я не изобретаю, ведь деньги - не главное, тут мысль парит выше - к сокровенному. Обычный вид, привычный для форумов, тоже будет доступен.

Обработка

во время простоев на сервере будут оживать боты и выполнять свою работу, от наведения порядка до распределения рейтинга сервера-слоя между участниками. Я считаю, что рейтинг сервера - по сути баллы участников, их работа так же непроста и требует внимания, для чего и будут служить все эти боты. Сообщения будут сливаться, обрастать связями, баллы накапливаться и распределяться. AI очень понравилась формулировка "живая система знаний" - это он её придумал, но там всё намного банальнее чем видится искусственному, но акутально. Всё это будет очень сложная механика.

К сути

Можете прочитать с вики. Кому не интересно - не ныряйте под спойлер. Параллельность и связка с глобальной сетью.

Скрытый текст

Так как оговариваемый сервер работает в режиме слоя сети, то его головные узлы в качестве предка могут ссылаться на множество источников, в том числе и внешние. Чтобы создать внешний источник, нужно иметь возможность оставления там сообщения, которое будет иметь собственный пермалинк. В этом сообщении пользователь должен оставить ссылку на создаваемый им головной узел на сервере слое, где при создании должен добавить источник, в качестве которого выступает этот пермалинк. И так же он должен оставить оценку к публикации, комментарием к которой является этот внешний источник. В сообщении источника пользователь должен оставить ссылку на черновик на сервере-слое, наличие которой проверит бот, и если в источнике по пермалинку есть ссылка на черновик, то внешний источник будет добавлен к головному узлу, а черновик станет доступным из сети чистовиком. Это обеспечит связку слоя и глобальной сети и перевозложит проблему дос атак на глобальную сеть, откуда они и приходят. Если же создаётся внутренний источник, то он создатся по этим же правилам, где оставляется комментарий к аргументу или сообщению другого пользователя, этим комментарием даётся оценка родителю (предшевственнику) и так-же в этом сообщении указывается ссылка на черновик, который станет чистовиком после проверки ботом выполнения всех условий. Под внешними источниками подразумевается вся глобальная сеть интернета, где конкретный пользователь может оставить якорь-ссылку на сервер-слой. Обязательно проверяется, при посещении нашего сервера-слоя незарегестрированным пользователем на сервере-слое, чтобы пользователь пришёл к сообщению по внешней ссылке именно с той ссылки, которая указана внутри в качестве внешнего источника, например https://3dtoday.ru/blogs/bigdown/petpull-ili-kak-ya-ego-nazyvayu-petbull#comment-1098610 (адрес абстрактный).

Сообщения на сервере-слое делятся на головные и рядовые сообщения. Головные сообщения занимают две ячейки таблицы сообщений, а рядовые - одну. Ячейка таблицы сообщений обязательно имеет поле хронологии и поле сообщения. Поле хронологии формируется сервером и читается парсером.

В поле хронологии (в текстовой строке), рядовых сообщений указывается идентификатор рядового сообщения, предыдущее сообщение в линии сообщений (предыдущий последовательный комментарий в линейной цепи комментариев к сообщению), дата создания самого сообщения, и так -же хвост, сообщение которое стало заключающим к линейной цепи комментариев к текущему сообщению (не к предку или предыдущему).

Связи и ветвления в поле хронологии

Это система динамического перехвата управления хвостом. Узел всегда «помнит» только своего самого свежего потомка. Старые ответы не исчезают, а выстраиваются в очередь: каждый новый ответ на тот же узел встает в конец цепи, делая предыдущий ответ своим «предшественником».

Логика «Эстафеты»:

  1. Первый ответ: А -> Б. (В А записан хвост Б, в Б предшественник А).

  2. Второй ответ на А (узел С): Цепь: А -> Б -> С. (В А теперь хвост С, а в С предшественник Б).

  3. Ответ на Б (узел Д): Б -> Д. (В Б теперь хвост Д, а в Д предшественник Б — но это уже начало боковой ветки, так как Б сам является частью цепи А-Б-С).

  4. Второй ответ на Б (узел Е): Цепь: Б -> Д -> Е. (В Б теперь хвост Е, а в Е предшественник Д).

Что это дает при чтении:

Мы идем от последнего хвоста к началу.

  • Если мы тянем за С, мы получаем магистраль: С -> Б -> А.

  • Когда мы проходим через Б, мы видим, что у него есть свой актуальный хвост Е.

  • Мы тянем за Е и получаем ветку: Е -> Д -> Б.

Итог: Мы получаем самоорганизующуюся структуру, где самый свежий ответ всегда содержится в родителе, а старые ответы вытягиваются от новых к старым до самого родителя включительно. План на завтра: Эта логика «перехвата хвоста» — :

  1. Искать текущий хвост родителя.

  2. Делать его предшественником нового узла.

  3. Назначать новый узел новым хвостом родителя.

Уровни хвостов ‐ извлечение веток.

Тут уже то, что отлажено и протестировано в коде.

Извлечение происходит от корневого узла, стрлками обозначены шаги. Следование следующее 1-5-4 , на ячейке 4 мы смотрим, является ли в списке уровней хвостов узел с ID 4, если не является, то мы добавляем его последним в LIFO и следуем по указателю хвоста, а если является, то мы перед переходом к предшественнику удаляем его. Так повторяется на всём пути до корневого узла 1. Таким образом путь получается 1-5-4 с добавлением в список хвостов-7 с добавлением в список хвостов-10-9 с добавлением в список хвостов-13-12-11-9 с удалением из списка - 8 - 7 с удалением из списка - 4 с удалением из списка - 3 - 2 с добавлением в список хвостов - 15 - 14 - 2 с удалением из списка - 1

Таким образом, мы имея всего один список, динамически расширяющийся и уменьшающийся, можем обработать ветвления любых уровней вложенности, одно за другим. Список обрабатывается по принципу "последним пришёл - первым вышел".

По ссылке собственно проект https://github.com/Andrei-Y/FPC_Lazarus_Server .

Код протестирован.

Суть теста

Левая кнопка - создание корневого узла. В TEdit мы вводим узел на который отвечаем, вторая средняя кнока - ответ на узел который указан в TEdit. Правая кнопка - извлечение веток.

Пройденный тест

Создал корень и ответил на узел 1 три раза, потом один раз на узел 2 и один раз на узел 5, лог ответов и извлечения:

Скрытый текст

MemoLog

21:42:02 Запуск сервера…

21:42:02 ОШИБКА СТАРТА: Binding of socket failed: 8080

21:42:02 Сервер запущен на порту 8080.

21:42:02 Открой в браузере: http://localhost:8080

21:42:05 — СОЗДАНИЕ КОРНЯ — 21:42:05 Узел №1 создан. Хроно: 0.0.0.

21:42:13 Отправляю воркеру команду приземлиться к ID: 1

21:42:13 ВОРКЕР: Приземлил ID 2. У родителя 1 Хроно теперь = “0.0.2.”

21:42:14 Отправляю воркеру команду приземлиться к ID: 1

21:42:14 ВОРКЕР: Приземлил ID 3. У родителя 1 Хроно теперь = “0.0.3.”

21:42:15 Отправляю воркеру команду приземлиться к ID: 1

21:42:15 ВОРКЕР: Приземлил ID 4. У родителя 1 Хроно теперь = “0.0.4.”

21:42:19 Отправляю воркеру команду приземлиться к ID: 2

21:42:19 ВОРКЕР: Приземлил ID 5. У родителя 2 Хроно теперь = “0.1.5.”

21:42:25 Отправляю воркеру команду приземлиться к ID: 5

21:42:25 ВОРКЕР: Приземлил ID 6. У родителя 5 Хроно теперь = “0.2.6.”

21:42:27 — СТАРТ ФОРМИРОВАНИЯ СТРУКТУРЫ —

21:42:27 >>> НЫРОК В ВЕТКУ (из узла 1 в хвост 4)

21:42:27 ВЫДЕРНУТ УЗЕЛ: 4

21:42:27 ВЫДЕРНУТ УЗЕЛ: 3

21:42:27 >>> НЫРОК В ВЕТКУ (из узла 2 в хвост 5)

21:42:27 >>> НЫРОК В ВЕТКУ (из узла 5 в хвост 6)

21:42:27 ВЫДЕРНУТ УЗЕЛ: 6

21:42:27 ВЫДЕРНУТ УЗЕЛ: 5

21:42:27 <<< ВСПЛЫТИЕ ИЗ ВЕТКИ (возврат в узел 5)

21:42:27 ВЫДЕРНУТ УЗЕЛ: 2

21:42:27 <<< ВСПЛЫТИЕ ИЗ ВЕТКИ (возврат в узел 2)

21:42:27 ВЫДЕРНУТ УЗЕЛ: 1

21:42:27 <<< ВСПЛЫТИЕ ИЗ ВЕТКИ (возврат в узел 1)

21:42:27 ВЫДЕРНУТ УЗЕЛ (КОРЕНЬ): 1 21:42:27 — СТРУКТУРА ЗАВЕРШЕНА —

Сравнение с помощью AI ассистента

Скрытый текст

Извлечение ячеек в системе «Эстафета Хвоста»: отличие от стандартных методов

Суть метода «Эстафета Хвоста»

Алгоритм предназначен для обхода древовидных структур обсуждений с приоритетом свежих данных. Его ключевые особенности:

  • Динамический список хвостов (LIFO‑стек) — отслеживает пройденные хвосты для корректного возврата.

  • Указатели:

    • Tail (T) — ссылка на самый свежий ответ у родителя;

    • Before (B) — ссылка на предшествующий узел в цепочке.

  • Итеративный обход — без рекурсии, с использованием стека вместо вызовов функций.

  • Приоритет глубины — сначала обрабатываются самые свежие ветки.

Принцип работы

  1. Старт. Начинаем с корневого узла.

  2. Погружение. На каждом узле проверяем, есть ли его ID в списке хвостов:

    • Если нет — добавляем ID в стек и переходим по Tail.

    • Если есть — удаляем ID из стека и переходим по Before.

  3. Возврат. При достижении конца ветки идём назад по цепочке предшественников.

  4. Завершение. Алгоритм останавливается, когда возвращаемся в корень и стек пуст.

Пример обхода (структура: корень → 2, 3, 4; 2 → 5; 5 → 6):

  1. Корень → 4 (добавляем 4 в стек).

  2. 4 → 3 (добавляем 3 в стек).

  3. 3 → 2 (добавляем 2 в стек).

  4. 2 → 5 (добавляем 5 в стек).

  5. 5 → 6 (добавляем 6 в стек).

  6. 6 → 5 (удаляем 6 из стека).

  7. 5 → 2 (удаляем 5 из стека).

  8. 2 → Корень (удаляем 2 из стека).

  9. Завершение.


Сравнение с традиционными методами

Параметр

«Эстафета Хвоста»

Классическое дерево (parent_id)

Материализованный путь

Вложенные множества

Структура данных

2 указателя (TailBefore) + стек

1 поле (parent_id)

Строка пути (например, 1.2.5)

2 поля (leftright)

Алгоритм обхода

Итеративный с динамическим стеком

Рекурсивный или итеративный с сортировкой

Поиск по префиксу

Диапазонный запрос

Сложность чтения ветки

O(n)

O(nlogn) (сортировка по дате)

O(n)

O(n)

Добавление узла

O(1) (обновление Tail)

O(1)

O(n) (обновление путей)

O(n) (перестройка индексов)

Потребление памяти

O(h) (h — глубина)

O(1)

Высокое (хранение путей)

Среднее

Актуальность данных

Высокая (приоритет Tail)

Средняя (требуется сортировка)

Средняя

Средняя

Подходит для edge‑устройств

Да (низкое потребление памяти)

Да

Нет (высокая нагрузка)

Нет (сложная логика)

Устойчивость к изменениям

Средняя (нужна блокировка)

Средняя

Низкая

Низкая


Ключевые отличия по принципу действия

  1. Фокус на актуальность

    • «Эстафета»: сначала обрабатываются свежие ветки (Tail), что критично для форумов и чатов.

    • Стандартные методы: обычно обходят узлы в порядке добавления или по фиксированному пути, без приоритета свежих данных.

  2. Отсутствие рекурсии

    • «Эстафета»: использует итеративный подход с динамическим стеком, что экономит память и подходит для слабых устройств (Jetson Nano).

    • Классическое дерево: часто требует рекурсии или сортировки, что увеличивает нагрузку.

  3. Динамический стек вместо статических индексов

    • «Эстафета»: стек хвостов формируется на лету, адаптируясь к структуре данных.

    • Вложенные множества: требуют пересчёта индексов при изменениях, что дорого.

  4. Минимальные изменения при добавлении узла

    • «Эстафета»: обновление Tail родителя — одна операция.

    • Материализованный путь: обновление путей всех потомков — O(n).

  5. Гибкость для динамических структур

    • «Эстафета»: легко обрабатывает вложенные ветки любой глубины.

    • Стандартные методы: могут требовать перестройки индексов или кэширования.


Преимущества для edge‑вычислений

  • Низкое потребление RAM. Стек хвостов растёт линейно с глубиной вложенности (O(h)), а не с числом узлов.

  • Простота добавления. Операции вставки и обновления минимальны (O(1)).

  • Предсказуемая сложность. Линейный обход (O(n)) без рекурсии.

  • Устойчивость. Динамический стек предотвращает пропуски узлов и зацикливания.

Ограничения

  • Race conditions. При параллельной записи нужны транзакции или блокировки.

  • Циклические ссылки. Требуются проверки на циклы.

  • Глубокие ветки. При большой глубине (>10000 узлов) возможны замедления.


Вывод

Метод «Эстафета Хвоста» — это специализированное решение для динамических обсуждений с акцентом на:

  • актуальность данных (приоритет свежих веток);

  • эффективность для edge‑устройств;

  • гибкость структуры (вложенные ветки любой глубины).

Он превосходит стандартные методы в сценариях, где:

  • важна скорость чтения свежих данных;

  • ресурсы ограничены (Jetson Nano, IoT);

  • структура часто меняется.

Для статических данных или редких изменений классические подходы (материализованный путь, вложенные множества) могут быть эффективнее, но для динамических систем «Эстафета» предлагает оптимальный баланс производительности и простоты.

На этом пока всё. Прдолжаю работать над проектами (в личное время разумеется, но я от этого в уныние не прихожу, даже напротив - это как щит).

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

Надеюсь на адекватные ответы, без указаний на то что делать мне, если кому-то (или даже мне) не хватает на вещества. Это творческий процесс и менеджменту он не поддаётся. Спасибо за внимание, будет интересна информация по аналогичным техническим (IT) решениям и сравнениям.