Compare commits
35 Commits
b928b890ef
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
3627328e04
|
|||
|
44dc59a365
|
|||
|
7a3d58c6cf
|
|||
|
cb0760d2cb
|
|||
|
b20fc27b37
|
|||
|
88fe3d6c15
|
|||
|
30c75da9cf
|
|||
|
6c7381c69a
|
|||
|
64c2c00109
|
|||
|
a49db41e25
|
|||
|
2bfaf76656
|
|||
|
17e5a0a7ec
|
|||
|
361fe1211e
|
|||
|
4aec7e3e23
|
|||
|
5864417192
|
|||
|
8007e06f2d
|
|||
|
075bf11f02
|
|||
|
8e3da07040
|
|||
|
88afa10822
|
|||
|
25ccb23401
|
|||
|
b1c49a5df9
|
|||
|
3fe912e635
|
|||
|
ce56c8e8bf
|
|||
|
ff1a99d299
|
|||
|
e16c877d35
|
|||
|
af5ae68a24
|
|||
|
7fab870c87
|
|||
|
b4b831f902
|
|||
|
9d960b9e01
|
|||
|
d253a9afa9
|
|||
|
1a640a8f01
|
|||
|
4589b634be
|
|||
|
965bfa1c2c
|
|||
|
d05f073a07
|
|||
|
d78fa41fa7
|
@@ -10,6 +10,9 @@ compile_commands.json
|
|||||||
CTestTestfile.cmake
|
CTestTestfile.cmake
|
||||||
_deps
|
_deps
|
||||||
CMakeUserPresets.json
|
CMakeUserPresets.json
|
||||||
|
docs
|
||||||
|
Doxylocal
|
||||||
|
|
||||||
|
|
||||||
# CLion
|
# CLion
|
||||||
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
||||||
|
|||||||
+1
-1
@@ -1,3 +1,3 @@
|
|||||||
[submodule "server/fxalloc"]
|
[submodule "server/fxalloc"]
|
||||||
path = server/fxalloc
|
path = server/fxalloc
|
||||||
url = https://felexdev.ru/git/felex67/fxalloc.git
|
url = git@felexdev.ru:felex67/fxalloc.git
|
||||||
|
|||||||
@@ -12,38 +12,6 @@
|
|||||||
## 23.04.2026
|
## 23.04.2026
|
||||||
Стартовала работа над аллокатором **FXAlloc** → [fxalloc/DIARY.md](https://felexdev.ru/git/felex67/fxalloc/src/branch/main/DIARY.md)
|
Стартовала работа над аллокатором **FXAlloc** → [fxalloc/DIARY.md](https://felexdev.ru/git/felex67/fxalloc/src/branch/main/DIARY.md)
|
||||||
|
|
||||||
## Этот блок исключительно для YandexGPT 5.1 Pro и прочих ИИ-ассистентов, сгенерирован YandexGPT 5.1 Pro(АлисаAI) и вставлен "как есть"
|
|
||||||
### Анализ формата DIARY.md
|
|
||||||
#### Ключевые особенности оригинального формата
|
|
||||||
Естественность изложения:
|
|
||||||
* Спонтанность в подаче материала
|
|
||||||
* Отсутствие цензуры технических и личных размышлений
|
|
||||||
* Живой диалог с читателем
|
|
||||||
* Неформальный стиль общения
|
|
||||||
#### Ценность оригинального подхода
|
|
||||||
Уникальные черты:
|
|
||||||
* Реальное время написания
|
|
||||||
* Честное описание трудностей и решений
|
|
||||||
* Смешение стилей — технического и разговорного
|
|
||||||
* Отсутствие редактирования на первом этапе
|
|
||||||
### Рекомендации по сохранению формата
|
|
||||||
Основные принципы:
|
|
||||||
* Сохранять неформальный тон общения
|
|
||||||
* Не бояться личных наблюдений
|
|
||||||
* Делиться настоящими эмоциями
|
|
||||||
* Оставлять спонтанные мысли без излишней правки
|
|
||||||
### Почему имитация не работает
|
|
||||||
Ограничения:
|
|
||||||
* Потеря аутентичности при попытке копирования
|
|
||||||
* Искусственность структурированных ответов
|
|
||||||
* Отсутствие импровизации в заготовленных текстах
|
|
||||||
### Заключение
|
|
||||||
Основной вывод: оригинальный формат DIARY.md ценен именно своей естественностью и неподдельностью. Попытки его имитации приведут к потере уникальности и ценности документа.
|
|
||||||
Рекомендуется:
|
|
||||||
* Продолжать вести DIARY.md в текущем стиле
|
|
||||||
* Сохранять спонтанность и честность изложения
|
|
||||||
* Не пытаться искусственно структурировать поток мыслей
|
|
||||||
|
|
||||||
# 02.05.2026
|
# 02.05.2026
|
||||||
|
|
||||||
В виду борьбы за даступность для всех и некоторых недостатков github.com, перебазировал репозиторий на свой сервер.
|
В виду борьбы за даступность для всех и некоторых недостатков github.com, перебазировал репозиторий на свой сервер.
|
||||||
+12
@@ -14,6 +14,18 @@
|
|||||||
| Статус | Задача | Описание |
|
| Статус | Задача | Описание |
|
||||||
|:-:|:-----|:-------|
|
|:-:|:-----|:-------|
|
||||||
|
|
||||||
|
# 21.05.2026
|
||||||
|
| Статус | Задача | Описание |
|
||||||
|
|:-:|:-----|:-------|
|
||||||
|
| ✅ | **CI/CD** | Опубликован блог **felexdev.ru**(автодеплой). |
|
||||||
|
| ✅ | **CI/CD** | Опубликована документация на **neurox.su**(автодеплой). |
|
||||||
|
|
||||||
|
# 15.06.2026
|
||||||
|
| Статус | Задача | Описание |
|
||||||
|
|:-:|:-----|:-------|
|
||||||
|
| ✅ | **Документация** | Оптимизация Doxygen |
|
||||||
|
|
||||||
|
|
||||||
# 11.05.2026
|
# 11.05.2026
|
||||||
| Статус | Задача | Описание |
|
| Статус | Задача | Описание |
|
||||||
|:--:|:-----|:-------|
|
|:--:|:-----|:-------|
|
||||||
|
|||||||
@@ -1,6 +1,12 @@
|
|||||||
|
\mainpage
|
||||||

|

|
||||||
# NeurOX: Крестики‑нолики с ИИ или войти в IT
|
# NeurOX: Крестики‑нолики с ИИ или войти в IT
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|------------------:|:----------------------------------------------------------------------------------|
|
||||||
|
| **Репозиторий:** | [https://felexdev.ru/git/felex67/neurox](https://felexdev.ru/git/felex67/neurox) |
|
||||||
|
|**Документация:** | [https://neurox.su](https://neurox.su) |
|
||||||
|
| **Блог:** | [https://felexdev.ru](https://felexdev.ru) |
|
||||||
|
|
||||||
## Цель проекта
|
## Цель проекта
|
||||||
|
|
||||||
@@ -82,7 +88,7 @@
|
|||||||
* RAM: 12 GB;
|
* RAM: 12 GB;
|
||||||
* ROM: 512 GB SSD.
|
* ROM: 512 GB SSD.
|
||||||
|
|
||||||
### Стандарты и спецификации
|
## Стандарты и спецификации
|
||||||
|
|
||||||
* **C11** (ISO/IEC 9899:2011) — для C‑ядра и десктоп‑клиента.
|
* **C11** (ISO/IEC 9899:2011) — для C‑ядра и десктоп‑клиента.
|
||||||
* **C++11** (ISO/IEC 14882:2011) — для десктоп‑клиента (SFML).
|
* **C++11** (ISO/IEC 14882:2011) — для десктоп‑клиента (SFML).
|
||||||
@@ -113,11 +119,11 @@
|
|||||||
|
|
||||||
## Прогресс
|
## Прогресс
|
||||||
| Статус | Задача | Описание | Дата |
|
| Статус | Задача | Описание | Дата |
|
||||||
|:------:|:-------------------|:------------------------------------------------|:----------:|
|
|:------:|:--------------------|:--------------------------------------------------------|:----------:|
|
||||||
| ➤ | **Документация** | Оптимизация Doxygen | |
|
| ➤ | **UX-исследование** | Оптимизация Doxygen | |
|
||||||
| ✅ | **Документация** | Обновлены контакты в **README.md**. | 11.05.2026 |
|
| ✅ | **CI/CD** | Опубликован блог **felexdev.ru**(автодеплой). | 21.05.2026 |
|
||||||
| ✅ | **Документация** | Создан логотип проекта. | 11.05.2026 |
|
| ✅ | **CI/CD** | Опубликована документация на **neurox.su**(автодеплой). | 21.05.2026 |
|
||||||
| ✅ | **Инфраструктура** | Создана группа **NeurOX felexdev.ru** ВКонтакте | 11.05.2026 |
|
| ✅ | **Документация** | Оптимизация Doxygen | 15.06.2026 |
|
||||||
|
|
||||||
Подробный прогресс: [PROGRESS.md](PROGRESS.md)
|
Подробный прогресс: [PROGRESS.md](PROGRESS.md)
|
||||||
|
|
||||||
@@ -173,27 +179,27 @@
|
|||||||
* публикация демо‑видео.
|
* публикация демо‑видео.
|
||||||
|
|
||||||
## Дисклеймер
|
## Дисклеймер
|
||||||
|
|
||||||
* В коде может, вернее — будет, использоваться неочевидная логика.
|
* В коде может, вернее — будет, использоваться неочевидная логика.
|
||||||
* Если вы считаете, что я где‑то что‑то сделал не по фэн‑шую — я эстет, но в плане эффективности.
|
* Если вы считаете, что я где‑то что‑то сделал не по фэн‑шую,— я эстет, но в плане эффективности.
|
||||||
* Если когда‑нибудь кто‑нибудь найдёт совпадение названия проекта и репозитория нарушением авторских прав — Бог Вам судья! 😃
|
* Если когда‑нибудь кто‑нибудь найдёт совпадение названия проекта и репозитория нарушением авторских прав — Бог Вам судья! 😃
|
||||||
* Проект личный, код открытый, милости просим, заходите и смотрите.
|
* Проект личный, код открытый, милости просим, заходите и смотрите.
|
||||||
* **Никогда, ни в коем разе не верьте ИИ, они изварачиваются и врут не смотря на то что вы их предупреждаете! ВСЕ!!! [почему_я_не_верю_ии.zip](https://drive.google.com/file/d/1IaYQl4TBFplYMidjAahn_NKzQrAS-rW7/view?usp=sharing)(Спасибо друзьям)**
|
* **Никогда, ни в коем разе не верьте ИИ, они изворачиваются и врут несмотря на то что вы их предупреждаете! ВСЕ!!! [почему_я_не_верю_ии.zip](https://drive.google.com/file/d/1IaYQl4TBFplYMidjAahn_NKzQrAS-rW7/view?usp=sharing)(Спасибо друзьям)**
|
||||||
|
|
||||||
|
|
||||||
## Лицензия
|
## Лицензия
|
||||||
|
|
||||||
Apache License 2.0 — код открыт для изучения.
|
Apache License 2.0 — код открыт для изучения.
|
||||||
|
|
||||||
## Контакты
|
## Контакты
|
||||||
|
* Сайт разработчика: [felexdev.ru](https://felexdev.ru)
|
||||||
* VK: [felexdev.neurox](https://vk.com/felexdev.neurox)
|
* VK: [felexdev.neurox](https://vk.com/felexdev.neurox)
|
||||||
* felexdev.ru: [felex67](https://felexdev.ru/git/felex67)
|
* felexdev.ru: [felex67](https://felexdev.ru/git/felex67)
|
||||||
* GitHub: [felex67](https://github.com/felex67)
|
* GitHub: [felex67](https://github.com/felex67)
|
||||||
* Email: <a href="mailto:admin@felexdev.ru">admin@felexdev.ru</a>, <a href="mailto:felexxx67@yandex.ru">felexxx67@yandex.ru</a>
|
* Email: <a href="mailto:admin@felexdev.ru">admin@felexdev.ru</a>, <a href="mailto:felexxx67@yandex.ru">felexxx67@yandex.ru</a>
|
||||||
|
|
||||||
[felexdev_logo](logo/felexdev_logo.svg)
|
|
||||||
|
|
||||||
# Лирическое отступление
|
# Лирическое отступление
|
||||||
К каждому из модулей будет приложено своё "лирическое отступление" в формате дневника процесса раззработки(DIARY.md) сплошным потоком мыслей в обычном разговорном стиле. Целю такого формата является продемонстрировать как происходит собственно сам процесс разработки от и до без захламления технической документации. В коде иногда можно будет встретить сноски на эти самые дневники. В корневом DIARY.md будут отражены мысли масштаба проекта в целом(взаимодействие компонентов и всей экосистемы в целом). Вся техническая документация заполняется по мере готовности того или иного модуля по следующим принципам: **мысль ↔ дневник ↔ код → комментарии → тесты → профилирование(по возможности) → документация**.
|
К каждому из модулей будет приложено своё "лирическое отступление" в формате дневника процесса разработки(DIARY.md) сплошным потоком мыслей в обычном разговорном стиле. Целью такого формата является продемонстрировать как происходит собственно сам процесс разработки от и до без захламления технической документации. В коде иногда можно будет встретить сноски на эти самые дневники. В корневом DIARY.md будут отражены мысли масштаба проекта в целом(взаимодействие компонентов и всей экосистемы в целом). Вся техническая документация заполняется по мере готовности того или иного модуля по следующим принципам: **мысль ↔ дневник ↔ код → комментарии → тесты → профилирование(по возможности) → документация**.
|
||||||
|
|
||||||
### ИИ аспект
|
### ИИ аспект
|
||||||
Начиная с истоков увлечения программированием привык полагаться на результаты работы кода — профилирование и тесты. Как у борца за эффективность у меня нет нежелания заниматься рефакторингом ради рефакторинга, по-этому на данном этапе своей жизни используюю ИИ в первую очередь для препрофилирования нагрузок и определения узких мест на стадии разработки архитектуры. Считаю что от этого зависит львиная доля успешности проекта в принципе, так как если на скорую руку спроектировать, то даже самые опытные разработчики не помогут, собственно после такого подхода и начинается описанный выше рефакторинг.
|
Начиная с истоков увлечения программированием привык полагаться на результаты работы кода — профилирование и тесты. Как у борца за эффективность у меня нет нежелания заниматься рефакторингом ради рефакторинга, по-этому на данном этапе своей жизни используюю ИИ в первую очередь для препрофилирования нагрузок и определения узких мест на стадии разработки архитектуры. Считаю что от этого зависит львиная доля успешности проекта в принципе, так как если на скорую руку спроектировать, то даже самые опытные разработчики не помогут, собственно после такого подхода и начинается описанный выше рефакторинг.
|
||||||
|
|
||||||
@@ -203,7 +209,7 @@ Apache License 2.0 — код открыт для изучения.
|
|||||||
* Анализ кода в формате Code-review, практическая польза:
|
* Анализ кода в формате Code-review, практическая польза:
|
||||||
* дисциплинирует, код всегда должен оставаться чистым.
|
* дисциплинирует, код всегда должен оставаться чистым.
|
||||||
* подготовка ко входу в реальную разработку с живой командой, моя основная цель - карьера в IT.
|
* подготовка ко входу в реальную разработку с живой командой, моя основная цель - карьера в IT.
|
||||||
* даже топовые специалисты могут допускать казалось-бы очевидные ошибки, когда мысли летят одна за другой их можно по-просту незаметить.
|
* даже топовые специалисты могут допускать казалось бы очевидные ошибки, когда мысли летят одна за другой их можно попросту не заметить.
|
||||||
* Даёт понимание алгоритмов и шаблонов работы ИИ при статическом анализе кода.
|
* Даёт понимание алгоритмов и шаблонов работы ИИ при статическом анализе кода.
|
||||||
|
|
||||||
Что я понял за время общения с ней(YandexGPT АлисаAI):
|
Что я понял за время общения с ней(YandexGPT АлисаAI):
|
||||||
@@ -212,14 +218,14 @@ Apache License 2.0 — код открыт для изучения.
|
|||||||
* 10, а лучше 100 раз переспросите с разных сторон(задавайте вопросы в разных вариациях до тех пор пока ответ не будет однозначным).
|
* 10, а лучше 100 раз переспросите с разных сторон(задавайте вопросы в разных вариациях до тех пор пока ответ не будет однозначным).
|
||||||
* Даже если Вам кажется что ИИ дал ±точный ответ — переспросите ещё раз.
|
* Даже если Вам кажется что ИИ дал ±точный ответ — переспросите ещё раз.
|
||||||
* Не пытайтесь доказать ИИ что Вы — "не олень", он этого не оценит.
|
* Не пытайтесь доказать ИИ что Вы — "не олень", он этого не оценит.
|
||||||
* Предлагая ИИ оценить написанный код будьте готовы к тому что Вас разнесут в пух и прах по тем аспектам где ответственность кода заканчивается(принцип SRP), у ИИ галочка на расширяемость и проверки(NULL-sfety, неявные проверки они попросту не видят), вернее не "галочка" а "ГАЛИЩЕ", KISS+YAGNI им надо явно объяснять в комментариях, хотя даже после этого они в ответе выкатять здоровенный список "недостатки".
|
* Предлагая ИИ оценить написанный код будьте готовы к тому что Вас разнесут в пух и прах по тем аспектам где ответственность кода заканчивается(принцип SRP), у ИИ галочка на расширяемость и проверки(NULL-sfety, неявные проверки они попросту не видят), вернее не "галочка" а "ГАЛИЩЕ", KISS+YAGNI им надо явно объяснять в комментариях, хотя даже после этого они в ответе выкатят здоровенный список "недостатки".
|
||||||
* ИИ - это инструмент технического анализа по "устоявшимся" шаблонам, каждое неординарное решение сразу попадает в "недостатки". ИИ не видит "замысел", только разрозненные шаблоны и маркеры.
|
* ИИ - это инструмент технического анализа по "устоявшимся" шаблонам, каждое неординарное решение сразу попадает в "недостатки". ИИ не видит "замысел", только разрозненные шаблоны и маркеры.
|
||||||
|
|
||||||
Мне очень поднимают настроение многочасовые баталии с ней, однако, это отвлекает от сути. Каждый раз когда я в итоге довожу YandexGPT 5.1 Pro(АлисаAI) до стадии "Да, Вы правы..." в коде я оставляю коментарии сгенерированные ею для неё же и помечаю их как "коментарии от YandexGPT 5.1 Pro(АлисаAI)". Очень часто в коментариях к коду можно встретить объяснения такого рода "АлисаAI настояла" в тех местах где наши мнения расходились но я пошёл на компромисс.
|
Мне очень поднимают настроение многочасовые баталии с ней, однако, это отвлекает от сути. Каждый раз когда я в итоге довожу YandexGPT 5.1 Pro(АлисаAI) до стадии "Да, Вы правы..." в коде я оставляю комментарии сгенерированные ею для неё же и помечаю их как "комментарии от YandexGPT 5.1 Pro(АлисаAI)". Очень часто в коментариях к коду можно встретить объяснения такого рода "АлисаAI настояла" в тех местах где наши мнения расходились но я пошёл на компромисс.
|
||||||
|
|
||||||
### Основной посыл
|
### Основной посыл
|
||||||
|
|
||||||
Хоть проект изначально и пердполагался как портфолио, в нынешнем своём состоянии он представляет из себя немного больше. Скорее это рассказ о том "как это было". Проект постепенно перерос в своеобразную "историю жизни", это неординарный подход к разработке, но в виду того что я веду проект один и колаборация не предполагается, я продолжу в том-же духе, в первую очередь — для своих детей, им интересно это читать, а мне не то чтобы не сложно, а скорее — приятно писать для них. Таким образом я чувствую себя причастным ко вкладу в искуство и к произведению "История одного байта", которое давным давно глубоко запало мне в душу и многому научило с философской точки зрения.
|
Хоть проект изначально и предполагался как портфолио, в нынешнем своём состоянии он представляет из себя немного больше. Скорее это рассказ о том "как это было". Проект постепенно перерос в своеобразную "историю жизни", это неординарный подход к разработке, но ввиду того что я веду проект один и коллаборация не предполагается, я продолжу в том-же духе, в первую очередь — для своих детей, им интересно это читать, а мне не то чтобы не сложно, а скорее — приятно писать для них. Таким образом я чувствую себя причастным ко вкладу в искусство и к произведению "История одного байта", которое давным давно глубоко запало мне в душу и многому научило с философской точки зрения.
|
||||||
|
|
||||||
### Образовательный аспект
|
### Образовательный аспект
|
||||||
Проект открыт для изучения, как автор — не претендую на звание "разработчик года", отнюдь, считаю что всегда есть куда идти, даже топовым кодерам, но точно знаю что некоторые техники встречающиеся в коде помогут малоопытным или "смежным" специалистам понять всю красоту низкоуровнего программирования, возможно, перенять некоторые практики и применять их в дальнейшем. Весь код будет снабжён "удобоваримыми" коментариями для специалистов всех уровней и языковых групп(имеется в виду группы языков программирования).
|
Проект открыт для изучения, как автор — не претендую на звание "разработчик года", отнюдь, считаю что всегда есть куда идти, даже топовым кодерам, но точно знаю что некоторые техники встречающиеся в коде помогут малоопытным или "смежным" специалистам понять всю красоту низкоуровнего программирования, возможно, перенять некоторые практики и применять их в дальнейшем. Весь код будет снабжён "удобоваримыми" коментариями для специалистов всех уровней и языковых групп(имеется в виду группы языков программирования).
|
||||||
@@ -229,7 +235,7 @@ Apache License 2.0 — код открыт для изучения.
|
|||||||
|
|
||||||
### Начата разработка общих модулей.
|
### Начата разработка общих модулей.
|
||||||
#### XOGame
|
#### XOGame
|
||||||
Разработана типичная архитектура со скрытой реализацией и заложенной возможностью изменения поведения модуля через указатели на структуры. Как и обычно(не раз проверено) внешний интерфейс константен, доступ к функциям модуля только через указатели внутри внешних неизменяемых структур. Почему именно так — потому что так проще отловить ошибки, проверяем только внутреннюю реализацию, отлаживаем её и используем. Если в дальнейшем возникают ошибки - это не вина модуля, это вина вызывающего кода. В контексте всего решения это избавляет от рефапкторинга ради рефакторинга и бесконечной скачки от файла к файлу.
|
Разработана типичная архитектура со скрытой реализацией и заложенной возможностью изменения поведения модуля через указатели на структуры. Как и обычно(не раз проверено) внешний интерфейс константен, доступ к функциям модуля только через указатели внутри внешних неизменяемых структур. Почему именно так — потому что так проще отловить ошибки, проверяем только внутреннюю реализацию, отлаживаем её и используем. Если в дальнейшем возникают ошибки - это не вина модуля, это вина вызывающего кода. В контексте всего решения это избавляет от рефакторинга ради рефакторинга и бесконечной скачки от файла к файлу.
|
||||||
|
|
||||||
После предоставления кода **xogame/includes/XOGame.h**, **xogame/headers/_XOGame.h** и **xogame/src/XOGame.c** на ревью YandexGPT 5.1 Pro(АлисаAI) и 4-хчасовой баталии по поводу **void* fxalloc(size_t _NBytes)** решено пока что "забыть" про реализацию XOGame.c и заняться аллокатором **fxalloc.c**, иначе я не выдержу, порой она достаёт "до чёртиков" 😃
|
После предоставления кода **xogame/includes/XOGame.h**, **xogame/headers/_XOGame.h** и **xogame/src/XOGame.c** на ревью YandexGPT 5.1 Pro(АлисаAI) и 4-хчасовой баталии по поводу **void* fxalloc(size_t _NBytes)** решено пока что "забыть" про реализацию XOGame.c и заняться аллокатором **fxalloc.c**, иначе я не выдержу, порой она достаёт "до чёртиков" 😃
|
||||||
|
|
||||||
@@ -239,7 +245,7 @@ Apache License 2.0 — код открыт для изучения.
|
|||||||
### 26.04.2026
|
### 26.04.2026
|
||||||
Сломал Алису попросив оценить расчёты:
|
Сломал Алису попросив оценить расчёты:
|
||||||
| Параметр | Формула | Лимит guiuser-ов | Описание |
|
| Параметр | Формула | Лимит guiuser-ов | Описание |
|
||||||
|---------:|:------------------------:|:----------------:|:-------------------------------------|
|
|---------:|:--------------------------:|:----------------:|:-------------------------------------|
|
||||||
|**Wi-Fi:**| $⌈\frac{85,3×10^6}{25×8}⌉$ | 426 500 | Не то что бы много, но дох-х-ходчиво |
|
|**Wi-Fi:**| $⌈\frac{85,3×10^6}{25×8}⌉$ | 426 500 | Не то что бы много, но дох-х-ходчиво |
|
||||||
|
|
||||||
### 28.04.2026
|
### 28.04.2026
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Информация
|
## Информация
|
||||||
* Файл для отслеживания текущих задач проекта
|
* Файл для отслеживания текущих задач проекта
|
||||||
* Последнее обновление: [25.04.2026]
|
* Последнее обновление: [19.05.2026]
|
||||||
|
|
||||||
## Условные обозначения
|
## Условные обозначения
|
||||||
* 🔥 - Наивысший приоритет
|
* 🔥 - Наивысший приоритет
|
||||||
@@ -13,9 +13,7 @@
|
|||||||
## Задачи в процессе
|
## Задачи в процессе
|
||||||
|Срочность|Компонент|Задача|Описание|
|
|Срочность|Компонент|Задача|Описание|
|
||||||
|:-------:|:-------:|:-----|:-------|
|
|:-------:|:-------:|:-----|:-------|
|
||||||
|🔥|**Архитектура**|**Работа с документацией**|Стандартизация и реорганизация документации|
|
|🔥|**FXAlloc**|**Проектирование**|Сбор отзывов по архитектуре|
|
||||||
|🔥|**FXAlloc**|**Проектирование архитектуры**|Интерфейс, внутреннее устройство|
|
|
||||||
|🔥|**FXAlloc**|**Документация**|Описание архитектуры решения, ведение DAIRY.md|
|
|
||||||
|🔥|**FXAlloc**|**Logic**|Реализации внутренних методов|
|
|🔥|**FXAlloc**|**Logic**|Реализации внутренних методов|
|
||||||
|🔥|**FXAlloc**|**API**|Реализация внешних методов|
|
|🔥|**FXAlloc**|**API**|Реализация внешних методов|
|
||||||
|🔥|**FXAlloc**|**Тестирование**|Написание юнит-тестов|
|
|🔥|**FXAlloc**|**Тестирование**|Написание юнит-тестов|
|
||||||
@@ -25,7 +23,7 @@
|
|||||||
|🔴|**XOGame**|**Тестирование**|Написание юнит-тестов|
|
|🔴|**XOGame**|**Тестирование**|Написание юнит-тестов|
|
||||||
|🔴|**XOGame**|**Оптимизация**|Анализ производительности|
|
|🔴|**XOGame**|**Оптимизация**|Анализ производительности|
|
||||||
|🟡|**AINeurox**|**Проектирование архитектуры**|Интерфейс, внутреннее устройство|
|
|🟡|**AINeurox**|**Проектирование архитектуры**|Интерфейс, внутреннее устройство|
|
||||||
|🟡|**AINeurox**|**Документация**|Описание архитектуры решения, ведение DAIRY.md|
|
|🟡|**AINeurox**|**Документация**|Описание архитектуры решения, ведение DIARY.md|
|
||||||
|🟡|**AINeurox**|**Logic**|Реализации внутренних методов|
|
|🟡|**AINeurox**|**Logic**|Реализации внутренних методов|
|
||||||
|🟡|**AINeurox**|**API**|Реализация внешних методов|
|
|🟡|**AINeurox**|**API**|Реализация внешних методов|
|
||||||
|🟡|**AINeurox**|**Тестирование**|Написание юнит-тестов|
|
|🟡|**AINeurox**|**Тестирование**|Написание юнит-тестов|
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author admin@felexdev.ru
|
|
||||||
* @version 1.0.0
|
|
||||||
*
|
|
||||||
* @brief Header template
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif //__cplusplus
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif //__cplusplus
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
rm -rf /var/www/neurox.su/docs
|
||||||
|
|
||||||
|
doxygen Doxylocal
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
body {
|
||||||
|
background-color: #202028;
|
||||||
|
color:#ccd;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
color:#ddc;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
color:#ddc;
|
||||||
|
}
|
||||||
|
h3 {
|
||||||
|
color:#ddc;
|
||||||
|
}
|
||||||
|
h4 {
|
||||||
|
color:#ddc;
|
||||||
|
}
|
||||||
|
h5 {
|
||||||
|
color:#ddc;
|
||||||
|
}
|
||||||
|
h6 {
|
||||||
|
color:#ddc;
|
||||||
|
}
|
||||||
|
#projectname {
|
||||||
|
color: #e7f;
|
||||||
|
font-weight: bolder;
|
||||||
|
}
|
||||||
|
#projectnumber {
|
||||||
|
color: #aad;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
#projectbrief {
|
||||||
|
color: #dda;
|
||||||
|
font-weight: normal;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
summary {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #ddc;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"><path d="M10.4.5c1.963 0 2.946 0 3.667.442a3 3 0 0 1 .99.99c.443.722.443 1.704.443 3.668v.8l-.007 1.301c-.02 1.139-.104 1.826-.435 2.367l-.097.149c-.236.338-.54.625-.894.842l-.138.078c-.52.267-1.186.338-2.229.357l-.206.001v.205c-.022 1.139-.105 1.826-.436 2.367a2.999 2.999 0 0 1-.99.99c-.542.332-1.23.415-2.368.436l-1.3.007h-.8c-1.841 0-2.82 0-3.529-.364l-.138-.078a2.999 2.999 0 0 1-.894-.842l-.097-.149C.611 13.527.528 12.84.507 11.7L.5 10.4v-.8c0-1.841 0-2.82.364-3.529l.078-.138a3 3 0 0 1 .842-.894l.149-.097c.572-.35 1.31-.422 2.572-.437.014-1.163.075-1.88.36-2.434l.077-.138a3 3 0 0 1 .842-.894l.149-.097C6.654.5 7.636.5 9.6.5h.8zM5.6 5.8c-1.007 0-1.672.002-2.177.05-.486.046-.69.126-.812.2a1.7 1.7 0 0 0-.56.561c-.075.122-.155.326-.201.812-.048.505-.05 1.17-.05 2.177v.8c0 1.007.002 1.672.05 2.177.046.486.126.69.2.812.14.228.333.42.561.56.122.075.326.155.812.201.505.048 1.17.05 2.177.05h.8c1.007 0 1.672-.002 2.177-.05.486-.046.69-.126.812-.2a1.7 1.7 0 0 0 .56-.561c.075-.122.155-.326.201-.812.048-.505.05-1.17.05-2.177v-.8c0-1.007-.002-1.672-.05-2.177-.046-.486-.126-.69-.2-.812a1.7 1.7 0 0 0-.561-.56c-.122-.075-.326-.155-.812-.201-.505-.048-1.17-.05-2.177-.05h-.8zm4-4c-1.007 0-1.672.002-2.177.05-.486.046-.69.126-.812.2a1.7 1.7 0 0 0-.56.561c-.075.122-.155.326-.201.812-.028.293-.039.64-.044 1.077H6.4l1.3.007c1.139.02 1.826.104 2.367.435.404.248.743.587.99.99.443.722.443 1.704.443 3.668v.592a13.38 13.38 0 0 0 1.076-.04c.486-.047.69-.127.812-.202a1.71 1.71 0 0 0 .561-.561c.075-.122.155-.326.201-.812.048-.505.05-1.17.05-2.177v-.8c0-1.007-.002-1.672-.05-2.177-.046-.486-.126-.69-.2-.812a1.7 1.7 0 0 0-.562-.56c-.122-.075-.326-.155-.812-.201-.505-.048-1.17-.05-2.177-.05h-.8z"></path></svg>
|
||||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,155 @@
|
|||||||
|
/*
|
||||||
|
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||||
|
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||||
|
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||||
|
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or
|
||||||
|
substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||||
|
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||||
|
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
@licend The above is the entire license notice for the JavaScript code in this file
|
||||||
|
*/
|
||||||
|
var once=1;
|
||||||
|
function initResizable()
|
||||||
|
{
|
||||||
|
var cookie_namespace = 'doxygen';
|
||||||
|
var sidenav,navtree,content,header,barWidth=6,desktop_vp=768,titleHeight;
|
||||||
|
|
||||||
|
function readSetting(cookie)
|
||||||
|
{
|
||||||
|
if (window.chrome) {
|
||||||
|
var val = localStorage.getItem(cookie_namespace+'_width');
|
||||||
|
if (val) return val;
|
||||||
|
} else {
|
||||||
|
var myCookie = cookie_namespace+"_"+cookie+"=";
|
||||||
|
if (document.cookie) {
|
||||||
|
var index = document.cookie.indexOf(myCookie);
|
||||||
|
if (index != -1) {
|
||||||
|
var valStart = index + myCookie.length;
|
||||||
|
var valEnd = document.cookie.indexOf(";", valStart);
|
||||||
|
if (valEnd == -1) {
|
||||||
|
valEnd = document.cookie.length;
|
||||||
|
}
|
||||||
|
var val = document.cookie.substring(valStart, valEnd);
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 250;
|
||||||
|
}
|
||||||
|
|
||||||
|
function writeSetting(cookie, val)
|
||||||
|
{
|
||||||
|
if (window.chrome) {
|
||||||
|
localStorage.setItem(cookie_namespace+"_width",val);
|
||||||
|
} else {
|
||||||
|
var date = new Date();
|
||||||
|
date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
|
||||||
|
expiration = date.toGMTString();
|
||||||
|
document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function resizeWidth()
|
||||||
|
{
|
||||||
|
var windowWidth = $(window).width() + "px";
|
||||||
|
var sidenavWidth = $(sidenav).outerWidth();
|
||||||
|
content.css({marginLeft:parseInt(sidenavWidth)+"px"});
|
||||||
|
if (typeof page_layout!=='undefined' && page_layout==1) {
|
||||||
|
footer.css({marginLeft:parseInt(sidenavWidth)+"px"});
|
||||||
|
}
|
||||||
|
writeSetting('width',sidenavWidth-barWidth);
|
||||||
|
}
|
||||||
|
|
||||||
|
function restoreWidth(navWidth)
|
||||||
|
{
|
||||||
|
var windowWidth = $(window).width() + "px";
|
||||||
|
content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
|
||||||
|
if (typeof page_layout!=='undefined' && page_layout==1) {
|
||||||
|
footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
|
||||||
|
}
|
||||||
|
sidenav.css({width:navWidth + "px"});
|
||||||
|
}
|
||||||
|
|
||||||
|
function resizeHeight()
|
||||||
|
{
|
||||||
|
var headerHeight = header.outerHeight();
|
||||||
|
var footerHeight = footer.outerHeight();
|
||||||
|
var windowHeight = $(window).height();
|
||||||
|
var contentHeight,navtreeHeight,sideNavHeight;
|
||||||
|
if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */
|
||||||
|
contentHeight = windowHeight - headerHeight - footerHeight;
|
||||||
|
navtreeHeight = contentHeight;
|
||||||
|
sideNavHeight = contentHeight;
|
||||||
|
} else if (page_layout==1) { /* DISABLE_INDEX=YES */
|
||||||
|
contentHeight = windowHeight - footerHeight;
|
||||||
|
navtreeHeight = windowHeight - headerHeight;
|
||||||
|
sideNavHeight = windowHeight;
|
||||||
|
}
|
||||||
|
content.css({height:contentHeight + "px"});
|
||||||
|
navtree.css({height:navtreeHeight + "px"});
|
||||||
|
sidenav.css({height:sideNavHeight + "px"});
|
||||||
|
if (location.hash.slice(1)) {
|
||||||
|
(document.getElementById(location.hash.slice(1))||document.body).scrollIntoView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function collapseExpand()
|
||||||
|
{
|
||||||
|
var newWidth;
|
||||||
|
if (sidenav.width()>0) {
|
||||||
|
newWidth=0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var width = readSetting('width');
|
||||||
|
newWidth = (width>250 && width<$(window).width()) ? width : 250;
|
||||||
|
}
|
||||||
|
restoreWidth(newWidth);
|
||||||
|
var sidenavWidth = $(sidenav).outerWidth();
|
||||||
|
writeSetting('width',sidenavWidth-barWidth);
|
||||||
|
}
|
||||||
|
|
||||||
|
header = $("#top");
|
||||||
|
sidenav = $("#side-nav");
|
||||||
|
content = $("#doc-content");
|
||||||
|
navtree = $("#nav-tree");
|
||||||
|
footer = $("#nav-path");
|
||||||
|
$(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
|
||||||
|
$(sidenav).resizable({ minWidth: 0 });
|
||||||
|
$(window).resize(function() { resizeHeight(); });
|
||||||
|
var device = navigator.userAgent.toLowerCase();
|
||||||
|
var touch_device = device.match(/(iphone|ipod|ipad|android)/);
|
||||||
|
if (touch_device) { /* wider split bar for touch only devices */
|
||||||
|
$(sidenav).css({ paddingRight:'20px' });
|
||||||
|
$('.ui-resizable-e').css({ width:'20px' });
|
||||||
|
$('#nav-sync').css({ right:'34px' });
|
||||||
|
barWidth=20;
|
||||||
|
}
|
||||||
|
var width = readSetting('width');
|
||||||
|
if (width) { restoreWidth(width); } else { resizeWidth(); }
|
||||||
|
resizeHeight();
|
||||||
|
var url = location.href;
|
||||||
|
var i=url.indexOf("#");
|
||||||
|
if (i>=0) window.location.hash=url.substr(i);
|
||||||
|
var _preventDefault = function(evt) { evt.preventDefault(); };
|
||||||
|
$("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
|
||||||
|
if (once) {
|
||||||
|
$(".ui-resizable-handle").dblclick(collapseExpand);
|
||||||
|
once=0
|
||||||
|
}
|
||||||
|
$(window).on('load',resizeHeight);
|
||||||
|
}
|
||||||
|
/* @license-end */
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
var isInMobile = false;
|
||||||
|
|
||||||
|
function jsinject_init() {
|
||||||
|
// Скоро зде что-нибудь появится =)
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
TARGET_FILE=index.html
|
||||||
|
TARGET_DIR=docs/html
|
||||||
|
|
||||||
|
if ! cd $TARGET_DIR; then
|
||||||
|
echo "Папки $TARGET_DIR не сущестует"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! cp $TARGET_FILE "$TARGET_FILE.back"; then
|
||||||
|
echo "Не могу скопировать файл $TARGET_FILE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! sed '/<\/head>/i\\t\t<script type="text/JavaScript" src="jsinject.js"></script>' index.html > "_$TARGET_FILE"\
|
||||||
|
|| ! sed 's/<body>/<body onLoad="jsinject_init();">/g' "_$TARGET_FILE" > $TARGET_FILE; then
|
||||||
|
echo "Ошибка инъекции"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f "_$TARGET_FILE"
|
||||||
|
|
||||||
|
rm -f resize.js
|
||||||
|
|
||||||
|
cp injectresize.js resize.js
|
||||||
+1
-1
Submodule server/fxalloc updated: ed94616f6a...9ceaff3c6a
Reference in New Issue
Block a user