diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 20c5cad..e5da3e9 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,13 +13,23 @@ "state": { "type": "markdown", "state": { - "file": "00 Inbox/Git.md", + "file": "CLAUDE.md", "mode": "source", "source": false, "backlinks": false }, "icon": "lucide-file", - "title": "Git" + "title": "CLAUDE" + } + }, + { + "id": "b0bcb98708e9e19e", + "type": "leaf", + "state": { + "type": "graph", + "state": {}, + "icon": "lucide-git-fork", + "title": "Graph view" } } ] @@ -248,6 +258,22 @@ }, "active": "30ac73a39bce2e4c", "lastOpenFiles": [ + "01 Library/02 DevOps/Основные команды git.md", + "00 Inbox/Git.md", + "00 Inbox/Archive/Шаблонизатор Helm.md", + "00 Inbox/Archive/УИР.md", + "00 Inbox/Archive/Основные команды git.md", + "00 Inbox/Archive/Обратное распространение ошибки - вывод.md", + "00 Inbox/Archive/Введение в сетевую безопасность.md", + "00 Inbox/Archive/Gitlab.md", + "00 Inbox/Archive/Git.md", + "00 Inbox/Archive", + "01 Library/08 Study/УИР.md", + "01 Library/11 Machine Learning/Обратное распространение ошибки - вывод.md", + "01 Library/04 Networking/Введение в сетевую безопасность.md", + "01 Library/02 DevOps/Kubernetes/Шаблонизатор Helm.md", + "01 Library/02 DevOps/Gitlab.md", + "01 Library/02 DevOps/Git.md", "00 Inbox/Шаблонизатор Helm.md", "00 Inbox/Основные команды git.md", "00 Inbox/Обратное распространение ошибки - вывод.md", @@ -265,28 +291,12 @@ "01 Library/03 Math/Статистика/Временные ряды/Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции.md.tmp.254945.1777751726019", "01 Library/Контакты/Игорь Прохоров.md", "01 Library/Контакты", - "01 Library/04 Networking/Networking - MOC.md", "01 Library/04 Networking/Networking - MOC.md.tmp.254945.1777751691344", "01 Library/10 Finance/Налоги/Налогообложение в России.md.tmp.254945.1777751687081", "01 Library/04 Networking/Router-on-a-Stick/Router-on-a-Stick.md.tmp.254945.1777751650349", - "01 Library/03 Math/Статистика/Кластерный анализ/Постановка задачи Кластерного анализа.md.tmp.254945.1777751645984", - "01 Library/01 Admin/CA и NGINX.md", - "CODEX.md", - "02 Projects/Наука/Статьи/Статья с Виноградовой.md", - "00 Inbox/Gitlab.md", - "00 Inbox/Git.md", - "00 Inbox/УИР.md", "99 System/Cache/Pasted image 20260430153712.png", "99 System/Cache/Pasted image 20260430152221.png", "99 System/Cache/generated-forest.png", - "99 System/Archive/Подготовка к защите ЛР2.md", - "99 System/Archive/Анализ типа фин. устойчивости.md", - "01 Library/02 DevOps/Kubernetes/Kubernetes.md", - "00 Inbox/PV, PVC.md", - "01 Library/02 DevOps/Kubernetes/PV, PVC.md", - "01 Library/02 DevOps/Kubernetes/Deployment и ReplicaSet.md", - "00 Inbox/Deployment и ReplicaSet.md", - "01 Library/02 DevOps/Kubernetes/Алгоритм выбора лидера Lease.md", "99 System/Cache/Pasted image 20260429091836.png", "99 System/Cache/Pasted image 20260429090930.png", "99 System/Cache/Pasted image 20260429090816.png", diff --git a/00 Inbox/Git.md b/00 Inbox/Archive/Git.md similarity index 100% rename from 00 Inbox/Git.md rename to 00 Inbox/Archive/Git.md diff --git a/00 Inbox/Gitlab.md b/00 Inbox/Archive/Gitlab.md similarity index 100% rename from 00 Inbox/Gitlab.md rename to 00 Inbox/Archive/Gitlab.md diff --git a/00 Inbox/Введение в сетевую безопасность.md b/00 Inbox/Archive/Введение в сетевую безопасность.md similarity index 100% rename from 00 Inbox/Введение в сетевую безопасность.md rename to 00 Inbox/Archive/Введение в сетевую безопасность.md diff --git a/00 Inbox/Обратное распространение ошибки - вывод.md b/00 Inbox/Archive/Обратное распространение ошибки - вывод.md similarity index 100% rename from 00 Inbox/Обратное распространение ошибки - вывод.md rename to 00 Inbox/Archive/Обратное распространение ошибки - вывод.md diff --git a/00 Inbox/Основные команды git.md b/00 Inbox/Archive/Основные команды git.md similarity index 100% rename from 00 Inbox/Основные команды git.md rename to 00 Inbox/Archive/Основные команды git.md diff --git a/00 Inbox/УИР.md b/00 Inbox/Archive/УИР.md similarity index 100% rename from 00 Inbox/УИР.md rename to 00 Inbox/Archive/УИР.md diff --git a/00 Inbox/Шаблонизатор Helm.md b/00 Inbox/Archive/Шаблонизатор Helm.md similarity index 100% rename from 00 Inbox/Шаблонизатор Helm.md rename to 00 Inbox/Archive/Шаблонизатор Helm.md diff --git a/01 Library/02 DevOps/Git.md b/01 Library/02 DevOps/Git.md new file mode 100644 index 0000000..d29b4f0 --- /dev/null +++ b/01 Library/02 DevOps/Git.md @@ -0,0 +1,85 @@ +--- +status: seed +type: concept +tags: + - devops + - git + - vcs +created: 2025-12-17 +updated: 2026-05-02 +title: Git +--- + +# Git + +**Git** — распределённая система контроля версий, разработанная Линусом Торвальдсом в 2005 году. + +Git используется для управления историей изменений исходного кода, командной разработки и организации процессов доставки ПО. В [[DevOps - основы]] Git относится к базовым инструментам контроля версий. + +## Зачем нужен Git + +- хранит историю изменений проекта; +- позволяет работать с ветками и объединять изменения; +- поддерживает распределённую модель разработки; +- помогает проводить code review и восстановление предыдущих состояний кода; +- интегрируется с платформами вроде [[Gitlab]] и CI/CD. + +## Преимущества + +### Производительность + +Git оптимизирован для локальных операций: большинство действий выполняется без обращения к удалённому серверу. История проекта хранится как набор объектов, связанных с содержимым файлов и метаданными версий. + +### Безопасность + +Git использует хеширование объектов, что помогает контролировать целостность истории изменений. Это защищает проект от незаметной подмены данных в истории. + +### Гибкость + +Git поддерживает разные модели разработки: от простой работы в одной ветке до сложных процессов с релизными, функциональными и hotfix-ветками. + +## Базовые сущности + +- **commit** — зафиксированное состояние изменений; +- **branch** — ветка разработки; +- **merge** — объединение веток; +- **diff** — сравнение изменений между состояниями проекта. + +Практические команды вынесены в заметку [[Основные команды git]]. + +## GitFlow + +**GitFlow** — модель ветвления, где используются основные ветки и временные ветки для разработки функциональности. + +Основные ветки: + +- `main` — официальная история релизов; +- `release` — подготовка готового функционала к выпуску; +- `develop` — основная ветка разработки; +- `feature` — разработка отдельной функциональности. + +Когда в `develop` накоплен достаточный объём изменений, создаётся `release`-ветка. После тестирования она сливается в `main` и обратно в `develop`. + +![[Pasted image 20260430152221.png|597]] + +Недостатки GitFlow: + +- не всегда хорошо сочетается с CI/CD; +- избыточен для проектов с частыми релизами; +- может усложнять историю слияний. + +## Trunk Based Development + +**Trunk Based Development (TBD)** — модель разработки, где основная работа ведётся вокруг одной главной ветки, называемой `trunk`. + +Идея TBD: чаще интегрировать изменения в основную ветку, уменьшать долгоживущие ветки и поддерживать возможность выпуска релиза в любой момент. + +![[Pasted image 20260430153712.png]] + +TBD лучше сочетается с CI/CD-процессами, потому что уменьшает риск крупных конфликтов слияния и ускоряет обратную связь от сборок и тестов. + +## Связанные заметки + +- [[Основные команды git]] +- [[Gitlab]] +- [[DevOps - основы]] diff --git a/01 Library/02 DevOps/Gitlab.md b/01 Library/02 DevOps/Gitlab.md new file mode 100644 index 0000000..aeff986 --- /dev/null +++ b/01 Library/02 DevOps/Gitlab.md @@ -0,0 +1,53 @@ +--- +status: seed +type: concept +tags: + - devops + - git + - cicd +created: 2025-12-17 +updated: 2026-05-02 +title: Gitlab +--- + +# Gitlab + +**Gitlab** — веб-платформа для управления репозиториями, командной разработкой и CI/CD-процессами поверх [[Git]]. + +Gitlab можно использовать как облачный сервис или развернуть на собственном сервере. + +## Возможности + +Gitlab позволяет: + +- создавать, изменять и удалять репозитории; +- управлять пользователями и правами доступа; +- проводить code review; +- настраивать проверки качества кода; +- автоматизировать сборку, тестирование и доставку через CI/CD; +- отслеживать задачи, релизы, метрики и состояние приложений. + +## Gitlab в DevOps + +В [[DevOps - основы]] Gitlab относится к инструментам CI/CD и командной разработки. + +Gitlab помогает связать несколько процессов: + +- управление исходным кодом через [[Git]]; +- review изменений; +- автоматическое тестирование; +- релизный цикл; +- проверки безопасности; +- наблюдаемость и сбор метрик. + +## Работа с кодом + +Gitlab поддерживает разные модели управления исходным кодом: GitFlow, Trunk Based Development и другие. + +Основная работа ведётся через проекты, репозитории, ветки, коммиты и merge request. Практические операции с локальным репозиторием описаны в [[Основные команды git]]. + +## Связанные заметки + +- [[Git]] +- [[Основные команды git]] +- [[DevOps - основы]] diff --git a/01 Library/02 DevOps/Kubernetes/Шаблонизатор Helm.md b/01 Library/02 DevOps/Kubernetes/Шаблонизатор Helm.md new file mode 100644 index 0000000..b3dd279 --- /dev/null +++ b/01 Library/02 DevOps/Kubernetes/Шаблонизатор Helm.md @@ -0,0 +1,92 @@ +--- +status: seed +type: guide +tags: + - devops + - kubernetes + - helm +created: 2025-12-17 +updated: 2026-05-02 +title: Шаблонизатор Helm +--- + +# Шаблонизатор Helm + +**Helm** — менеджер пакетов и шаблонизатор для развёртывания приложений в [[Kubernetes]]. + +Helm помогает описывать, устанавливать, обновлять и удалять приложения через готовые или собственные Helm charts. + +## Зачем нужен Helm + +Helm позволяет: + +- искать готовые charts; +- устанавливать приложения в Kubernetes; +- обновлять релизы; +- удалять приложения; +- переиспользовать шаблоны манифестов; +- параметризовать установку через values. + +## Helm chart + +**Helm chart** — пакет с шаблонами Kubernetes-манифестов, значениями по умолчанию и метаданными приложения. + +Chart можно: + +- найти в публичном chart-репозитории; +- создать самостоятельно под своё приложение. + +## Базовый workflow + +Добавить chart-репозиторий: + +```sh +helm repo add bitnami https://charts.bitnami.com/bitnami +``` + +Обновить индекс репозиториев: + +```sh +helm repo update +``` + +Найти chart: + +```sh +helm search repo bitnami +``` + +Установить приложение: + +```sh +helm install my-mysql bitnami/mysql +``` + +Посмотреть доступные параметры: + +```sh +helm show values istio/base +``` + +Установить или обновить значения через `--set`: + +```sh +helm install istiod istio/istiod --set requests.cpu=300m +``` + +Посмотреть установленные релизы: + +```sh +helm list +``` + +Обновить релиз: + +```sh +helm upgrade istiod istio/istiod --set requests.cpu=600m +``` + +## Связанные заметки + +- [[Kubernetes]] +- [[DevOps - основы]] diff --git a/01 Library/02 DevOps/Основные команды git.md b/01 Library/02 DevOps/Основные команды git.md new file mode 100644 index 0000000..907ff4c --- /dev/null +++ b/01 Library/02 DevOps/Основные команды git.md @@ -0,0 +1,72 @@ +--- +status: seed +type: guide +tags: + - devops + - git + - cli +created: 2025-12-17 +updated: 2026-05-02 +title: Основные команды git +--- + +# Основные команды git + +Эта заметка — краткий справочник по базовым командам [[Git]]. + +## Создание и получение репозитория + +- `git init` — создать новый Git-репозиторий в текущем проекте. +- `git clone` — создать локальную копию удалённого репозитория. + +## Работа с ветками + +- `git branch` — показать, создать или удалить ветки. +- `git checkout` — переключиться на ветку, файл или коммит. +- `git merge` — слить одну ветку в другую. +- `git rebase` — перебазировать ветку поверх другой ветки. + +## Работа с изменениями + +- `git status` — показать состояние рабочего каталога. +- `git add` — добавить изменения в индекс. +- `git commit` — зафиксировать проиндексированные изменения. +- `git restore` — откатить изменения или убрать их из индекса. +- `git revert` — создать новый коммит, отменяющий выбранный старый коммит без переписывания истории. + +## Работа с удалённым репозиторием + +- `git push` — отправить локальные коммиты в удалённый репозиторий. +- `git pull` — получить изменения из удалённого репозитория и сразу объединить их с локальной веткой. + +Платформы вроде [[Gitlab]] используют эти операции как основу для командной разработки, merge request и CI/CD. + +## Merge и rebase + +`git merge` и `git rebase` решают одну задачу: переносят изменения из одной ветки в другую. Разница в том, как они меняют историю. + +### Merge + +`git merge` создаёт слияние веток без переписывания уже существующих коммитов. Это безопасный вариант для публичных веток. + +![](https://legacy.merionet.ru/images/devops/images/3756/img_04.png) + +### Rebase + +`git rebase` переносит коммиты текущей ветки поверх другой ветки и помогает получить более линейную историю. + +![](https://legacy.merionet.ru/images/devops/images/3756/img_03.png) + +> [!important] Золотое правило rebase +> Не выполнять `git rebase` над публичной веткой, если её уже используют другие разработчики. + +## Когда выбирать merge или rebase + +- Если нужно сохранить полную историю и не переписывать публичные коммиты — использовать `git merge`. +- Если нужна чистая линейная история в локальной или личной ветке — использовать `git rebase`. + +## Связанные заметки + +- [[Git]] +- [[Gitlab]] +- [[DevOps - основы]] diff --git a/01 Library/04 Networking/Введение в сетевую безопасность.md b/01 Library/04 Networking/Введение в сетевую безопасность.md new file mode 100644 index 0000000..bd3fc86 --- /dev/null +++ b/01 Library/04 Networking/Введение в сетевую безопасность.md @@ -0,0 +1,74 @@ +--- +status: seed +type: concept +tags: + - networking + - security + - infosec +created: 2025-12-17 +updated: 2026-05-02 +title: Введение в сетевую безопасность +--- + +# Введение в сетевую безопасность + +**Сетевая безопасность** — часть информационной безопасности, которая защищает сетевую инфраструктуру, передаваемые данные и доступ к сетевым ресурсам. + +Сетевая безопасность связана с архитектурой сети, политиками доступа, сегментацией, мониторингом и защитой от атак. В контексте сети рядом лежат темы [[Сегментация сети]], [[VPN]] и [[Networking - MOC]]. + +## CIA: базовая модель безопасности + +Информационная безопасность описывает состояние защищённости информации, при котором обеспечиваются: + +- **конфиденциальность** — информация недоступна неавторизованным пользователям; +- **целостность** — информация не искажена и не подменена; +- **доступность** — система и данные доступны легитимным пользователям. + +## Идентификация, аутентификация, авторизация + +- **Идентификация** — присвоение субъектам и объектам уникальных идентификаторов. +- **Аутентификация** — проверка подлинности пользователя или системы. +- **Авторизация** — проверка прав доступа к объектам и операциям. + +## Принципы защиты + +Для повышения уровня безопасности полезны следующие принципы: + +- **простота** — меньше лишних технологий и механизмов, меньше поверхность атаки; +- **безопасные настройки по умолчанию** — доступ запрещён, если он явно не разрешён; +- **полная опосредованность** — каждое обращение к ресурсу проходит проверку прав; +- **минимизация полномочий** — субъект получает только необходимые права; +- **разделение ответственности** — разные части системы получают разные зоны ответственности и доступы. + +## Уязвимость, угроза и атака + +> [!info] Уязвимость +> **Уязвимость** — слабое место системы, которое может позволить нарушить её безопасность. + +Примеры уязвимостей: + +- ошибка в программе; +- слабый пароль; +- неправильные права доступа; +- небезопасная конфигурация сети. + +**Угроза** — набор обстоятельств и действий, которые потенциально могут привести к нарушению безопасности. + +**Атака** — реализованная угроза. + +## Поиск уязвимостей + +Поиск уязвимостей включает регулярное тестирование системы и анализ её состояния. Для автоматизации применяются сканеры уязвимостей, например OpenVAS и Nessus. + +Сканирование обычно строится так: + +1. Инструмент отправляет запросы к целевой системе. +2. По ответам формируется информационный отпечаток. +3. Отпечаток сравнивается с базой известных уязвимостей. +4. Формируется отчёт с найденными проблемами. + +## Связанные заметки + +- [[Networking - MOC]] +- [[Сегментация сети]] +- [[VPN]] diff --git a/01 Library/08 Study/УИР.md b/01 Library/08 Study/УИР.md new file mode 100644 index 0000000..2856e59 --- /dev/null +++ b/01 Library/08 Study/УИР.md @@ -0,0 +1,47 @@ +--- +status: seed +type: knowledge +tags: + - study + - research +created: 2025-12-17 +updated: 2026-05-02 +title: УИР +--- + +# УИР + +**УИР** — учебно-исследовательская работа. + +Тема: анализ предметной области и существующих решений в сфере контроля посещаемости в вузах. + +## Фокус исследования + +Работа должна описать: + +- предметную область контроля посещаемости; +- типовые процессы учёта посещаемости в вузах; +- существующие технические решения; +- ограничения и риски таких решений; +- критерии сравнения подходов. + +## Возможные направления анализа + +- ручной учёт посещаемости; +- электронные журналы; +- QR-коды и одноразовые коды; +- RFID/NFC-карты; +- биометрические методы; +- интеграция с LMS или внутренними системами вуза. + +## Вопросы для раскрытия + +- Кто является пользователем системы: студент, преподаватель, администратор? +- Как подтверждается факт присутствия? +- Какие ошибки и злоупотребления возможны? +- Какие персональные данные обрабатываются? +- Какие требования к безопасности и доступности системы важны? + +## Связанные заметки + +Явных устойчивых связей пока нет. diff --git a/01 Library/11 Machine Learning/Обратное распространение ошибки - вывод.md b/01 Library/11 Machine Learning/Обратное распространение ошибки - вывод.md new file mode 100644 index 0000000..5ba3994 --- /dev/null +++ b/01 Library/11 Machine Learning/Обратное распространение ошибки - вывод.md @@ -0,0 +1,79 @@ +--- +status: seed +type: concept +tags: + - machine-learning + - neural-networks + - backpropagation +created: 2025-12-17 +updated: 2026-05-02 +title: Обратное распространение ошибки - вывод +--- + +# Обратное распространение ошибки - вывод + +Эта заметка фиксирует математический вывод градиента для алгоритма [[Обратное распространение ошибки]]. Общий контекст нейронных сетей находится в [[Нейронные сети]]. + +## Обозначения + +> [!note] Обозначения +> $x_{j}$ — $j$-й вход +> $w_{ij}^{(1)}$ — вес от входа $j$ к скрытому нейрону $i$ +> $w_{li}^{(2)}$ — вес от скрытого нейрона $i$ к выходу $l$ +> $S_{i}^{(1)}$ — взвешенная сумма на входе нейрона $i$ в первом слое +> $u_{i}$ — выход нейрона $i$ первого слоя после активации +> $S_{l}^{(2)}$ — взвешенная сумма на входе нейрона $l$ во втором слое +> $y_{l}$ — выход нейрона $l$ второго слоя +> $d_{l}$ — истинное значение +> $F$ — функция активации + +## Прямой проход + +$$ +\begin{align*} +S_{i}^{(1)} &= \sum\limits_{j=1}^{n}w_{ij}^{(1)}x_{j} \\ +u_{i} &= F(S_{i}^{(1)}) \\ +y_{l} &= F(S_{l}^{(2)}) \\ +E &= \frac{1}{2}\sum\limits_{l=1}^{m}(y_{l}-d_{l})^{2} +\end{align*} +$$ + +## Обратный проход для выходного слоя + +Для веса $w_{li}^{(2)}$ используется правило цепочки: + +$$ +\begin{align*} +\frac{dE}{dw_{li}^{(2)}} &= +\frac{dE}{dy_{l}} +\cdot +\frac{dy_{l}}{dS_{l}^{(2)}} +\cdot +\frac{dS_{l}^{(2)}}{dw_{li}^{(2)}} +\end{align*} +$$ + +Компоненты производной: + +$$ +\frac{dE}{dy_l}=y_l-d_l +$$ + +$$ +\frac{dy_l}{dS_l^{(2)}}=F'(S_l^{(2)}) +$$ + +$$ +\frac{dS_l^{(2)}}{dw_{li}^{(2)}}=u_i +$$ + +Итог: + +$$ +\frac{dE}{dw_{li}^{(2)}}=(y_l-d_l)F'(S_l^{(2)})u_i +$$ + +## Связанные заметки + +- [[Обратное распространение ошибки]] +- [[Нейронные сети]] diff --git a/CLAUDE.md b/CLAUDE.md index 6f77b9a..9db5207 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -55,7 +55,7 @@ Vault — второй мозг владельца. Claude — соавтор `0 1. Создать заметку в `01 Library/` по подходящему шаблону 2. Доработать черновик: расширить, уточнить формулировки, структурировать 3. `status: seed`, заполнить frontmatter, проставить [[wikilinks]] -4. Переместить исходник в `00 Inbox/Archive/` +4. Переместить исходник в `99 /Archive/` 5. После завершения: показать список предложенных связей с существующими заметками, которые не были добавлены автоматически ## Workflow: Wiki