Files
SecondBrain/.obsidian/workspace.json
T
2026-05-29 07:39:14 +03:00

420 lines
138 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"main": {
"id": "5324373015726ba8",
"type": "split",
"children": [
{
"id": "7285c3349cfcdac4",
"type": "tabs",
"children": [
{
"id": "44e5aceda7b172df",
"type": "leaf",
"pinned": true,
"state": {
"type": "terminal:terminal",
"state": {
"terminal:terminal": {
"cwd": "/home/ada/Documents/Vaults/SecondBrain",
"focus": false,
"profile": {
"args": [
"--login"
],
"executable": "/usr/bin/zsh",
"followTheme": true,
"name": "ZSH",
"platforms": {
"darwin": false,
"linux": true
},
"pythonExecutable": "python3",
"restoreHistory": true,
"rightClickAction": "copyPaste",
"successExitCodes": [
"0",
"SIGINT",
"SIGTERM"
],
"terminalOptions": {
"fontFamily": "FiraCode Nerd Font Mono",
"documentOverride": null
},
"type": "integrated",
"useWin32Conhost": false
},
"profileSourceId": "7004edff-76db-412f-95d3-5fd8e180d055",
"serial": {
"columns": 109,
"data": "\u001b[2m• \u001b[0mНашёл три файла в \u001b[36m00 Inbox\u001b[0m: Kyocera FS-1020MFP, Ruby-итераторы и Ruby-знания. Сейчас читаю их и ищу близкие\r\n существующие заметки, чтобы не плодить дубли.\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m В случае ошибок на принтере Kyocera FS-1020MFP.md\u001b[2m, \u001b[0mИтераторы для обработки массивов Ruby.md\u001b[2m, \u001b[0mBase\r\n Note.md\u001b[2m, \u001b[0mЗнания Ruby.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172minE\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'ruby|итератор|kyocera|принтер|printer'\u001b[38;2;205;214;244m INDEX.md\r\n\u001b[39;2m └ 421:| `90 Library/Programming/Ruby - массивы.md` | Ruby - массивы | seed | knowledge | programming, ruby\r\n\u001b[0m \u001b[2m|\r\n … +12 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m443:| `99 System/Archive/Ruby - массивы.md` | Ruby - массивы | seed | concept | — |\r\n\u001b[0m \u001b[2m444:| `99 System/Archive/Ruby - основы языка.md` | Ruby - основы языка | seed | concept | — |\r\n\r\n\u001b[31;22m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput without permissionDecision:allow\r\n\r\n\u001b[31;1m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput without permissionDecision:allow\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m Ruby - массивы.md\u001b[2m, \u001b[0mRuby - основы языка.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mcommand\u001b[38;2;205;214;244m find \u001b[38;2;166;227;161m'00 Inbox'\u001b[38;2;205;214;244m -type f -name \u001b[38;2;166;227;161m'*.png'\u001b[38;2;205;214;244m -print\r\n\u001b[39;2m └ (no output)\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mcommand\u001b[38;2;205;214;244m find . -name \u001b[38;2;166;227;161m'Pasted image 20260526203807.png'\u001b[38;2;205;214;244m -o -name \u001b[38;2;166;227;161m'Pasted image 20260526203848.png'\r\n\u001b[39;2m └ ./99 System/Cache/Pasted image 20260526203807.png\r\n\u001b[0m \u001b[2m./99 System/Cache/Pasted image 20260526203848.png\r\n\r\n─────────────────────────────────────────────────────────────────────────────────────────────────────────────\r\n\r\n• \u001b[0mДля Ruby уже есть две близкие заметки: \u001b[36mRuby - основы языка\u001b[0m и \u001b[36mRuby - массивы\u001b[0m. Черновики выглядят как\r\n дополнения к ним, а не как отдельные темы; проверю изображения, чтобы понять, есть ли там важный текст для\r\n переноса.\r\n\r\n\u001b[2m• \u001b[0mViewed Image\r\n\u001b[2m └ 99 System/Cache/Pasted image 20260526203807.png\r\n\r\n• \u001b[0mViewed Image\r\n\u001b[2m └ 99 System/Cache/Pasted image 20260526203848.png\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/HomeLab\"\u001b[38;2;205;214;244m INDEX.md\r\n\u001b[39;2m └ 4 matches in 1F:\r\n\r\n … +4 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 284: | `90 Library/HomeLab/Проблемы дистрибутивов.md` | Проблемы дистрибутивов | seed...\r\n\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/Other\"\u001b[38;2;205;214;244m INDEX.md\r\n\u001b[39;2m └ 3 matches in 1F:\r\n\r\n … +3 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 420: | `90 Library/Other/Сканер отпечатка пальцев.md` | Сканер Отпечатка Пальцев | pr...\r\n\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mR\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"^source:\"\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Programming'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Other'\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m|\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mhead\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172m40\r\n\u001b[39;2m └ 90 Library/Programming/Ruby On Rails/Rails credentials edit не открывает редактор.md:11:source: \"[[99\r\n\u001b[0m \u001b[2mSystem/Archive/Rails credentials edit не открывает редактор|Rails credentials edit не открывает\r\n … +3 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m90 Library/Programming/Ruby - массивы.md:10:source: \"[[Ruby - массивы]]\"\r\n\u001b[0m \u001b[2m90 Library/Programming/Ruby - основы языка.md:10:source: \"[[Ruby - основы языка]]\"\r\n\r\n─────────────────────────────────────────────────────────────────────────────────────────────────────────────\r\n\r\n• \u001b[0mПлан ingest:\r\n\r\n \u001b[94m1. \u001b[36m00 Inbox/В случае ошибок на принтере Kyocera FS-1020MFP.md\r\n\u001b[0m - Создать новую заметку: \u001b[36m90 Library/Other/Kyocera FS-1020MFP — ошибки.md\r\n\u001b[0m - Шаблон: \u001b[36mBase Note.md\r\n\u001b[0m - Тип: \u001b[36mguide\u001b[0m, статус: \u001b[36mseed\r\n\u001b[0m - Связи: пока без автоссылок, близких заметок в индексе не нашёл.\r\n \u001b[94m2. \u001b[36m00 Inbox/Знания Ruby.md\r\n\u001b[0m - Дополнить существующую \u001b[36m90 Library/Programming/Ruby - основы языка.md\r\n\u001b[0m - Добавить: \u001b[36m||=\u001b[0m, falsey-значения, предикаты, логические операторы, \u001b[36m<=>\u001b[0m, альтернативные условия, строки.\r\n - Статус заметки сменить на \u001b[36mprocessing\u001b[0m, обновить \u001b[36mupdated\u001b[0m.\r\n \u001b[94m3. \u001b[36m00 Inbox/Итераторы для обработки массивов Ruby.md\r\n\u001b[0m - Дополнить существующую \u001b[36m90 Library/Programming/Ruby - массивы.md\r\n\u001b[0m - Добавить: \u001b[36meach\u001b[0m, \u001b[36meach_index\u001b[0m, пример поиска min/max и индексов.\r\n - Текст с картинок вынести кодом, сами картинки не переносить в Library.\r\n - Статус заметки сменить на \u001b[36mprocessing\u001b[0m, обновить \u001b[36mupdated\u001b[0m.\r\n \u001b[94m4. \u001b[0mПосле правок:\r\n - Переместить три исходника в \u001b[36m99 System/Archive/\u001b[0m.\r\n - Обновить \u001b[36mINDEX.md\u001b[0m.\r\n\r\n Подтверди, и я выполню.\r\n\r\n\u001b[2m─ Worked for 1m 06s ─────────────────────────────────────────────────────────────────────────────────────────\r\n\r\n\u001b[48;5;239;22m\u001b[109X\r\n\u001b[1;2m \u001b[22;22mДа, давай\r\n\r\n\u001b[0m\u001b[109X\r\n\u001b[2m• \u001b[0mПриступаю к правкам: две Ruby-заметки дополню на месте, для Kyocera создам отдельный guide. Затем перенесу\r\n исходники в архив и регенерирую индекс по frontmatter.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mR\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"^source:\"\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m . \u001b[38;2;148;226;213m|\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mhead\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172m80\r\n\u001b[39;2m └ ./.trash/copilot/copilot-custom-prompts/Clip Web Page.md:20:source: \"<page url>\"\r\n\u001b[0m \u001b[2m./90 Library/Finance/Инвестиции/Дивидендный портфель.md:12:source:\r\n … +43 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m./.stversions/90 Library/01 Admin/Nginx Proxy Manager под path~20260523-090050.md:12:source: \"[[Лайфхак\r\n\u001b[0m \u001b[2mдля NPM. Как проксировать не на поддомен а на под путь]]\"\r\n\r\n\u001b[31;22m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput without permissionDecision:allow\r\n\r\n\u001b[31;1m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput without permissionDecision:allow\r\n\r\n\u001b[31;1m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput without permissionDecision:allow\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m Гайд на научников.md\u001b[2m, \u001b[0mСканер отпечатка пальцев.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mcommand\u001b[38;2;205;214;244m find \u001b[38;2;166;227;161m'99 System/Archive'\u001b[38;2;205;214;244m -maxdepth 1 -type f -name \u001b[38;2;166;227;161m'Итераторы для обработки массивов Ruby.md'\r\n\u001b[39;2m │ \u001b[38;2;205;214;244;22m-print\r\n\u001b[39;2m └ (no output)\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mcommand\u001b[38;2;205;214;244m find \u001b[38;2;166;227;161m'99 System/Archive'\u001b[38;2;205;214;244m -maxdepth 1 -type f -name \u001b[38;2;166;227;161m'В случае ошибок на принтере Kyocera\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mFS-1020MFP.md'\u001b[38;2;205;214;244m -print\r\n\u001b[39;2m └ (no output)\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mcommand\u001b[38;2;205;214;244m find \u001b[38;2;166;227;161m'99 System/Archive'\u001b[38;2;205;214;244m -maxdepth 1 -type f -name \u001b[38;2;166;227;161m'Знания Ruby.md'\u001b[38;2;205;214;244m -print\r\n\u001b[39;2m └ (no output)\r\n\r\n─────────────────────────────────────────────────────────────────────────────────────────────────────────────\r\n\r\n• \u001b[0mАрхивных файлов с такими именами нет, конфликтов при переносе не будет. Меняю только три целевые заметки и\r\n индекс.\r\n\r\n\u001b[2m• \u001b[0mEdited 3 files (\u001b[32m+263\u001b[0m \u001b[31m-6\u001b[0m)\r\n\u001b[2m └ \u001b[0m90 Library/Other/Kyocera FS-1020MFP — ошибки.md (\u001b[32m+44\u001b[0m \u001b[31m-0\u001b[0m)\r\n\u001b[48;5;22m \u001b[2m 1 \u001b[32;22m+\u001b[38;2;147;153;178m---\u001b[98X\r\n\u001b[39m \u001b[2m 2 \u001b[32;22m+\u001b[38;2;205;214;244mstatus: seed\r\n\u001b[39m \u001b[2m 3 \u001b[32;22m+\u001b[38;2;205;214;244mtype: guide\r\n\u001b[39m \u001b[2m 4 \u001b[32;22m+\u001b[38;2;205;214;244mtags:\r\n\u001b[39m \u001b[2m 5 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m other\r\n\u001b[39m \u001b[2m 6 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m printer\r\n\u001b[39m \u001b[2m 7 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m kyocera\r\n\u001b[39m \u001b[2m 8 \u001b[32;22m+\u001b[38;2;205;214;244mcreated: 2026-05-26\r\n\u001b[39m \u001b[2m 9 \u001b[32;22m+\u001b[38;2;205;214;244mupdated: 2026-05-26\r\n\u001b[39m \u001b[2m10 \u001b[32;22m+\u001b[38;2;205;214;244mtitle: Kyocera FS-1020MFP — ошибки\r\n\u001b[39m \u001b[2m11 \u001b[32;22m+\u001b[38;2;205;214;244msource: \"[[В случае ошибок на принтере Kyocera FS-1020MFP]]\"\r\n\u001b[39m \u001b[2m12 \u001b[32;22m+\u001b[38;2;147;153;178m---\r\n\u001b[39m \u001b[2m13 \u001b[32;22m+\r\n\u001b[39m \u001b[2m14 \u001b[32;22m+\u001b[38;2;147;153;178m#\u001b[38;2;243;139;168m \u001b[38;2;148;226;213mKyocera FS-1020MFP — ошибки\r\n\u001b[39m \u001b[2m15 \u001b[32;22m+\r\n\u001b[39m \u001b[2m16 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mE-0008: Cover open\r\n\u001b[39m \u001b[2m17 \u001b[32;22m+\r\n\u001b[39m \u001b[2m18 \u001b[32;22m+\u001b[38;2;205;214;244mПричина: открыта крышка.\r\n\u001b[39m \u001b[2m19 \u001b[32;22m+\r\n\u001b[39m \u001b[2m20 \u001b[32;22m+\u001b[38;2;205;214;244mЧто сработало: закрыть заднюю откидную крышку. Никаких кнопок нажимать не понадобилось.\r\n\u001b[39m \u001b[2m21 \u001b[32;22m+\r\n\u001b[39m \u001b[2m22 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mE-0001: Non-genuine toner\r\n\u001b[39m \u001b[2m23 \u001b[32;22m+\r\n\u001b[39m \u001b[2m24 \u001b[32;22m+\u001b[38;2;205;214;244mПричина: принтер видит неоригинальный картридж.\r\n\u001b[39m \u001b[2m25 \u001b[32;22m+\r\n\u001b[39m \u001b[2m26 \u001b[32;22m+\u001b[38;2;205;214;244mЧто сработало: зажать \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mMode Select\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m + \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mStop/Reset\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m на 3+ секунды.\r\n\u001b[39m \u001b[2m27 \u001b[32;22m+\r\n\u001b[39m \u001b[2m28 \u001b[32;22m+\u001b[38;2;205;214;244mВажно: нужна именно \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mMode Select\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m, а не зелёная кнопка \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mStart\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m. Комбинация \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mStart\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m + \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mStop\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m не помогл\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mа.\r\n\u001b[39m \u001b[2m29 \u001b[32;22m+\r\n\u001b[39m \u001b[2m30 \u001b[32;22m+\u001b[38;2;205;214;244mПосле сброса на экране появилось \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m01\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m. Это не ошибка, а нормальный режим готовности: количество копий\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m по умолчанию равно 1.\r\n\u001b[39m \u001b[2m31 \u001b[32;22m+\r\n\u001b[39m \u001b[2m32 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mE-0017: Not connected\r\n\u001b[39m \u001b[2m33 \u001b[32;22m+\r\n\u001b[39m \u001b[2m34 \u001b[32;22m+\u001b[38;2;205;214;244mЭто не аппаратная ошибка, а отвалившийся USB.\r\n\u001b[39m \u001b[2m35 \u001b[32;22m+\r\n\u001b[39m \u001b[2m36 \u001b[32;22m+\u001b[38;2;205;214;244mЧто сделать:\r\n\u001b[39m \u001b[2m37 \u001b[32;22m+\r\n\u001b[39m \u001b[2m38 \u001b[32;22m+\u001b[38;2;205;214;244m1\u001b[38;2;147;153;178m.\u001b[38;2;205;214;244m Нажать \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mStop/Reset\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m.\r\n\u001b[39m \u001b[2m39 \u001b[32;22m+\u001b[38;2;205;214;244m2\u001b[38;2;147;153;178m.\u001b[38;2;205;214;244m Подключить USB-кабель.\r\n\u001b[39m \u001b[2m40 \u001b[32;22m+\u001b[38;2;205;214;244m3\u001b[38;2;147;153;178m.\u001b[38;2;205;214;244m Проверить драйвер.\r\n\u001b[39m \u001b[2m41 \u001b[32;22m+\r\n\u001b[39m \u001b[2m42 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mКоротко\r\n\u001b[39m \u001b[2m43 \u001b[32;22m+\r\n\u001b[39m \u001b[2m44 \u001b[32;22m+\u001b[38;2;205;214;244mГлавная рабочая комбинация для сброса ошибки картриджа: \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mMode Select\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m + \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mStop/Reset\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m, удерживать 3+ с\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mекунды.\r\n\u001b[0m\u001b[109X\r\n\u001b[2m └ \u001b[0m90 Library/Programming/Ruby - массивы.md (\u001b[32m+78\u001b[0m \u001b[31m-3\u001b[0m)\r\n \u001b[2m 1 \u001b[0m \u001b[38;2;147;153;178m---\r\n\u001b[39;48;5;52m \u001b[2m 2 \u001b[31;22m-\u001b[38;2;205;214;244;2mstatus: seed\u001b[88X\r\n\u001b[39;48;5;22;22m \u001b[2m 2 \u001b[32;22m+\u001b[38;2;205;214;244mstatus: processing\u001b[82X\r\n\u001b[0m \u001b[2m 3 \u001b[0m \u001b[38;2;205;214;244mtype: knowledge\u001b[85X\r\n\u001b[0m \u001b[2m ⋮\r\n\u001b[0m \u001b[2m 7 \u001b[0m \u001b[38;2;205;214;244mcreated: 2026-05-17\r\n\u001b[39;48;5;52m \u001b[2m 8 \u001b[31;22m-\u001b[38;2;205;214;244;2mupdated: 2026-05-17\u001b[81X\r\n\u001b[39;48;5;22;22m \u001b[2m 8 \u001b[32;22m+\u001b[38;2;205;214;244mupdated: 2026-05-26\u001b[81X\r\n\u001b[0m \u001b[2m 9 \u001b[0m \u001b[38;2;205;214;244mtitle: Ruby - массивы\u001b[79X\r\n\u001b[39;48;5;52m \u001b[2m 10 \u001b[31;22m-\u001b[38;2;205;214;244;2msource: \"[[Ruby - массивы]]\"\u001b[72X\r\n\u001b[39;48;5;22;22m \u001b[2m 10 \u001b[32;22m+\u001b[38;2;205;214;244msource:\u001b[93X\r\n\u001b[39m \u001b[2m 11 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \"[[Ruby - массивы]]\"\r\n\u001b[39m \u001b[2m 12 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \"[[Итераторы для обработки массивов Ruby]]\"\r\n\u001b[0m \u001b[2m 13 \u001b[0m \u001b[38;2;147;153;178m---\u001b[97X\r\n\u001b[0m \u001b[2m ⋮\r\n\u001b[0m \u001b[2m 99 \u001b[0m \u001b[38;2;147;153;178m```\r\n\u001b[39;48;5;22m \u001b[2m100 \u001b[32;22m+\u001b[100X\r\n\u001b[39m \u001b[2m101 \u001b[32;22m+\u001b[38;2;205;214;244m## Итераторы\r\n\u001b[39m \u001b[2m102 \u001b[32;22m+\r\n\u001b[39m \u001b[2m103 \u001b[32;22m+\u001b[38;2;205;214;244m`each` перебирает элементы массива:\r\n\u001b[39m \u001b[2m104 \u001b[32;22m+\r\n\u001b[39m \u001b[2m105 \u001b[32;22m+\u001b[38;2;205;214;244m```ruby\r\n\u001b[39m \u001b[2m106 \u001b[32;22m+\u001b[38;2;205;214;244mary.each { |item| block }\r\n\u001b[39m \u001b[2m107 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m108 \u001b[32;22m+\r\n\u001b[39m \u001b[2m109 \u001b[32;22m+\u001b[38;2;205;214;244mПример:\r\n\u001b[39m \u001b[2m110 \u001b[32;22m+\r\n\u001b[39m \u001b[2m111 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m112 \u001b[32;22m+\u001b[38;2;205;214;244marr\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244meach \u001b[38;2;203;166;247mdo\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;235;160;172mx\u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m113 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m x \u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m0\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m&&\u001b[38;2;205;214;244m x \u001b[38;2;148;226;213m%\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m5\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m==\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m0\r\n\u001b[39m \u001b[2m114 \u001b[32;22m+\u001b[38;2;205;214;244m arr_out \u001b[38;2;148;226;213m<<\u001b[38;2;205;214;244m x\r\n\u001b[39m \u001b[2m115 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mend\r\n\u001b[39m \u001b[2m116 \u001b[32;22m+\u001b[38;2;203;166;247mend\r\n\u001b[39m \u001b[2m117 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m118 \u001b[32;22m+\r\n\u001b[39m \u001b[2m119 \u001b[32;22m+\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244meach_index\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m перебирает индексы:\r\n\u001b[39m \u001b[2m120 \u001b[32;22m+\r\n\u001b[39m \u001b[2m121 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m122 \u001b[32;22m+\u001b[38;2;205;214;244mary\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244meach_index \u001b[38;2;147;153;178m{\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;235;160;172mindex\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m block \u001b[38;2;147;153;178m}\r\n\u001b[39m \u001b[2m123 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m124 \u001b[32;22m+\r\n\u001b[39m \u001b[2m125 \u001b[32;22m+\u001b[38;2;205;214;244mПохожий проход по индексам:\r\n\u001b[39m \u001b[2m126 \u001b[32;22m+\r\n\u001b[39m \u001b[2m127 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m128 \u001b[32;22m+\u001b[38;2;147;153;178m(\u001b[38;2;250;179;135m0\u001b[38;2;148;226;213m...\u001b[38;2;205;214;244marr\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244msize\u001b[38;2;147;153;178m)\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244meach \u001b[38;2;203;166;247mdo\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;235;160;172mi\u001b[38;2;147;153;178m|\r\n\u001b[39m \u001b[2m129 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m arr\u001b[38;2;147;153;178m[\u001b[38;2;205;214;244mi\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m0\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m&&\u001b[38;2;205;214;244m arr\u001b[38;2;147;153;178m[\u001b[38;2;205;214;244mi\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m%\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m5\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m==\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m0\r\n\u001b[39m \u001b[2m130 \u001b[32;22m+\u001b[38;2;205;214;244m arr_out \u001b[38;2;148;226;213m<<\u001b[38;2;205;214;244m arr\u001b[38;2;147;153;178m[\u001b[38;2;205;214;244mi\u001b[38;2;147;153;178m]\r\n\u001b[39m \u001b[2m131 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mend\r\n\u001b[39m \u001b[2m132 \u001b[32;22m+\u001b[38;2;203;166;247mend\r\n\u001b[39m \u001b[2m133 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m134 \u001b[32;22m+\r\n\u001b[39m \u001b[2m135 \u001b[32;22m+\u001b[38;2;147;153;178m###\u001b[38;2;249;226;175m \u001b[38;2;148;226;213mПоиск минимума, максимума и индексов\r\n\u001b[39m \u001b[2m136 \u001b[32;22m+\r\n\u001b[39m \u001b[2m137 \u001b[32;22m+\u001b[38;2;205;214;244mИмперативный вариант:\r\n\u001b[39m \u001b[2m138 \u001b[32;22m+\r\n\u001b[39m \u001b[2m139 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m140 \u001b[32;22m+\u001b[38;2;205;214;244ma \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;243;139;168mgets\u001b[38;2;148;226;213m.\u001b[38;2;243;139;168mchomp\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244msplit\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mmap \u001b[38;2;147;153;178m{\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;235;160;172mi\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m i\u001b[38;2;148;226;213m.\u001b[38;2;243;139;168mto_i\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m}\r\n\u001b[39m \u001b[2m141 \u001b[32;22m+\u001b[38;2;243;139;168mp\u001b[38;2;205;214;244m a\r\n\u001b[39m \u001b[2m142 \u001b[32;22m+\r\n\u001b[39m \u001b[2m143 \u001b[32;22m+\u001b[38;2;205;214;244mmax \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m min \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m a\u001b[38;2;147;153;178m[\u001b[38;2;250;179;135m0\u001b[38;2;147;153;178m]\r\n\u001b[39m \u001b[2m144 \u001b[32;22m+\u001b[38;2;205;214;244mmaxi \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m mini \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m0\r\n\u001b[39m \u001b[2m145 \u001b[32;22m+\r\n\u001b[39m \u001b[2m146 \u001b[32;22m+\u001b[38;2;203;166;247mfor\u001b[38;2;205;214;244m i \u001b[38;2;148;226;213min\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m1\u001b[38;2;148;226;213m...\u001b[38;2;205;214;244ma\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244msize\r\n\u001b[39m \u001b[2m147 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m a\u001b[38;2;147;153;178m[\u001b[38;2;205;214;244mi\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m max\r\n\u001b[39m \u001b[2m148 \u001b[32;22m+\u001b[38;2;205;214;244m max \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m a\u001b[38;2;147;153;178m[\u001b[38;2;205;214;244mi\u001b[38;2;147;153;178m]\r\n\u001b[39m \u001b[2m149 \u001b[32;22m+\u001b[38;2;205;214;244m maxi \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m i\r\n\u001b[39m \u001b[2m150 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mend\r\n\u001b[39m \u001b[2m151 \u001b[32;22m+\r\n\u001b[39m \u001b[2m152 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m a\u001b[38;2;147;153;178m[\u001b[38;2;205;214;244mi\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m<\u001b[38;2;205;214;244m min\r\n\u001b[39m \u001b[2m153 \u001b[32;22m+\u001b[38;2;205;214;244m min \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m a\u001b[38;2;147;153;178m[\u001b[38;2;205;214;244mi\u001b[38;2;147;153;178m]\r\n\u001b[39m \u001b[2m154 \u001b[32;22m+\u001b[38;2;205;214;244m mini \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m i\r\n\u001b[39m \u001b[2m155 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mend\r\n\u001b[39m \u001b[2m156 \u001b[32;22m+\u001b[38;2;203;166;247mend\r\n\u001b[39m \u001b[2m157 \u001b[32;22m+\r\n\u001b[39m \u001b[2m158 \u001b[32;22m+\u001b[38;2;243;139;168mputs\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"Максимальное число: \u001b[38;2;147;153;178m#{\u001b[38;2;205;214;244mmax\u001b[38;2;147;153;178m}\u001b[38;2;166;227;161m, индекс: \u001b[38;2;147;153;178m#{\u001b[38;2;205;214;244mmaxi\u001b[38;2;147;153;178m}\u001b[38;2;166;227;161m\"\r\n\u001b[39m \u001b[2m159 \u001b[32;22m+\u001b[38;2;243;139;168mputs\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"Минимальное число: \u001b[38;2;147;153;178m#{\u001b[38;2;205;214;244mmin\u001b[38;2;147;153;178m}\u001b[38;2;166;227;161m, индекс: \u001b[38;2;147;153;178m#{\u001b[38;2;205;214;244mmini\u001b[38;2;147;153;178m}\u001b[38;2;166;227;161m\"\r\n\u001b[39m \u001b[2m160 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m161 \u001b[32;22m+\r\n\u001b[39m \u001b[2m162 \u001b[32;22m+\u001b[38;2;205;214;244mЧерез методы массива:\r\n\u001b[39m \u001b[2m163 \u001b[32;22m+\r\n\u001b[39m \u001b[2m164 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m165 \u001b[32;22m+\u001b[38;2;205;214;244ma \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;243;139;168mgets\u001b[38;2;148;226;213m.\u001b[38;2;243;139;168mchomp\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244msplit\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mmap \u001b[38;2;147;153;178m{\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m|\u001b[38;2;235;160;172mi\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m i\u001b[38;2;148;226;213m.\u001b[38;2;243;139;168mto_i\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m}\r\n\u001b[39m \u001b[2m166 \u001b[32;22m+\u001b[38;2;243;139;168mp\u001b[38;2;205;214;244m a\r\n\u001b[39m \u001b[2m167 \u001b[32;22m+\r\n\u001b[39m \u001b[2m168 \u001b[32;22m+\u001b[38;2;205;214;244mmax \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m a\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mmax\r\n\u001b[39m \u001b[2m169 \u001b[32;22m+\u001b[38;2;205;214;244mmin \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m a\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mmin\r\n\u001b[39m \u001b[2m170 \u001b[32;22m+\u001b[38;2;205;214;244mmaxi \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m a\u001b[38;2;148;226;213m.\u001b[38;2;243;139;168mindex\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mmax\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m171 \u001b[32;22m+\u001b[38;2;205;214;244mmini \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m a\u001b[38;2;148;226;213m.\u001b[38;2;243;139;168mindex\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mmin\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m172 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[0m\u001b[109X\r\n\u001b[2m └ \u001b[0m90 Library/Programming/Ruby - основы языка.md (\u001b[32m+141\u001b[0m \u001b[31m-3\u001b[0m)\r\n \u001b[2m 1 \u001b[0m \u001b[38;2;147;153;178m---\r\n\u001b[39;48;5;52m \u001b[2m 2 \u001b[31;22m-\u001b[38;2;205;214;244;2mstatus: seed\u001b[88X\r\n\u001b[39;48;5;22;22m \u001b[2m 2 \u001b[32;22m+\u001b[38;2;205;214;244mstatus: processing\u001b[82X\r\n\u001b[0m \u001b[2m 3 \u001b[0m \u001b[38;2;205;214;244mtype: knowledge\u001b[85X\r\n\u001b[0m \u001b[2m ⋮\r\n\u001b[0m \u001b[2m 7 \u001b[0m \u001b[38;2;205;214;244mcreated: 2026-05-17\r\n\u001b[39;48;5;52m \u001b[2m 8 \u001b[31;22m-\u001b[38;2;205;214;244;2mupdated: 2026-05-17\u001b[81X\r\n\u001b[39;48;5;22;22m \u001b[2m 8 \u001b[32;22m+\u001b[38;2;205;214;244mupdated: 2026-05-26\u001b[81X\r\n\u001b[0m \u001b[2m 9 \u001b[0m \u001b[38;2;205;214;244mtitle: Ruby - основы языка\u001b[74X\r\n\u001b[39;48;5;52m \u001b[2m 10 \u001b[31;22m-\u001b[38;2;205;214;244;2msource: \"[[Ruby - основы языка]]\"\u001b[67X\r\n\u001b[39;48;5;22;22m \u001b[2m 10 \u001b[32;22m+\u001b[38;2;205;214;244msource:\u001b[93X\r\n\u001b[39m \u001b[2m 11 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \"[[Ruby - основы языка]]\"\r\n\u001b[39m \u001b[2m 12 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m \"[[Знания Ruby]]\"\r\n\u001b[0m \u001b[2m 13 \u001b[0m \u001b[38;2;147;153;178m---\u001b[97X\r\n\u001b[0m \u001b[2m ⋮\r\n\u001b[0m \u001b[2m 70\r\n\u001b[48;5;22;22m \u001b[2m 71 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mЗначения по умолчанию\u001b[76X\r\n\u001b[39m \u001b[2m 72 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 73 \u001b[32;22m+\u001b[38;2;205;214;244mДля присваивания значения по умолчанию часто используют \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m||=\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m:\r\n\u001b[39m \u001b[2m 74 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 75 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m 76 \u001b[32;22m+\u001b[38;2;205;214;244ma \u001b[38;2;148;226;213m||=\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'что-то'\r\n\u001b[39m \u001b[2m 77 \u001b[32;22m+\u001b[38;2;147;153;178m# то же самое, что:\r\n\u001b[39m \u001b[2m 78 \u001b[32;22m+\u001b[38;2;205;214;244ma \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m a \u001b[38;2;148;226;213m||\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'что-то'\r\n\u001b[39m \u001b[2m 79 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m 80 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 81 \u001b[32;22m+\u001b[38;2;205;214;244mЭто работает из-за того, что в Ruby только \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mnil\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m и \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mfalse\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m считаются falsey. Все остальные значения,\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m включая \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m0\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m, пустую строку и пустой массив, в условиях считаются truthy.\r\n\u001b[39m \u001b[2m 82 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 83 \u001b[32;22m+\u001b[38;2;205;214;244mОграничение: \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m||=\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m не подходит, если \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mfalse\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m — допустимое сохранённое значение.\r\n\u001b[39m \u001b[2m 84 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 85 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mПредикаты\r\n\u001b[39m \u001b[2m 86 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 87 \u001b[32;22m+\u001b[38;2;205;214;244mВ Ruby проверки часто оформляют методами-предикатами с \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m?\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m на конце:\r\n\u001b[39m \u001b[2m 88 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 89 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m 90 \u001b[32;22m+\u001b[38;2;250;179;135m0\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mzero? \u001b[38;2;147;153;178m# => true\r\n\u001b[39m \u001b[2m 91 \u001b[32;22m+\u001b[38;2;250;179;135m1\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mzero? \u001b[38;2;147;153;178m# => false\r\n\u001b[39m \u001b[2m 92 \u001b[32;22m+\u001b[38;2;250;179;135m2\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mpositive? \u001b[38;2;147;153;178m# => true\r\n\u001b[39m \u001b[2m 93 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 94 \u001b[32;22m+\u001b[38;2;250;179;135m8\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244meven? \u001b[38;2;147;153;178m# => true\r\n\u001b[39m \u001b[2m 95 \u001b[32;22m+\u001b[38;2;250;179;135m8\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244modd? \u001b[38;2;147;153;178m# => false\r\n\u001b[39m \u001b[2m 96 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 97 \u001b[32;22m+\u001b[38;2;166;227;161m''\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mempty? \u001b[38;2;147;153;178m# => true\r\n\u001b[39m \u001b[2m 98 \u001b[32;22m+\u001b[38;2;166;227;161m'wow'\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mempty? \u001b[38;2;147;153;178m# => false\r\n\u001b[39m \u001b[2m 99 \u001b[32;22m+\r\n\u001b[39m \u001b[2m100 \u001b[32;22m+\u001b[38;2;205;214;244msomething\u001b[38;2;148;226;213m.\u001b[38;2;243;139;168mnil?\r\n\u001b[39m \u001b[2m101 \u001b[32;22m+\u001b[38;2;205;214;244mitems\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244many?\r\n\u001b[39m \u001b[2m102 \u001b[32;22m+\u001b[38;2;205;214;244mitems\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mempty?\r\n\u001b[39m \u001b[2m103 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m104 \u001b[32;22m+\r\n\u001b[0m \u001b[2m105 \u001b[0m \u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mУправляющие конструкции\u001b[74X\r\n\u001b[0m \u001b[2m ⋮\r\n\u001b[0m \u001b[2m134\r\n\u001b[48;5;22;22m \u001b[2m135 \u001b[32;22m+\u001b[38;2;147;153;178m###\u001b[38;2;249;226;175m \u001b[38;2;148;226;213mАльтернативные условия\u001b[74X\r\n\u001b[39m \u001b[2m136 \u001b[32;22m+\r\n\u001b[39m \u001b[2m137 \u001b[32;22m+\u001b[38;2;205;214;244mТернарный оператор:\r\n\u001b[39m \u001b[2m138 \u001b[32;22m+\r\n\u001b[39m \u001b[2m139 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m140 \u001b[32;22m+\u001b[38;2;205;214;244mv \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m3\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m==\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m4\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m?\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m1\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m0\r\n\u001b[39m \u001b[2m141 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m142 \u001b[32;22m+\r\n\u001b[39m \u001b[2m143 \u001b[32;22m+\u001b[38;2;205;214;244mПостфиксный \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mif\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m используют для коротких выражений:\r\n\u001b[39m \u001b[2m144 \u001b[32;22m+\r\n\u001b[39m \u001b[2m145 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m146 \u001b[32;22m+\u001b[38;2;205;214;244mdo_something \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m num\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mzero?\r\n\u001b[39m \u001b[2m147 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m148 \u001b[32;22m+\r\n\u001b[39m \u001b[2m149 \u001b[32;22m+\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244munless\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m выполняет блок, если условие ложно:\r\n\u001b[39m \u001b[2m150 \u001b[32;22m+\r\n\u001b[39m \u001b[2m151 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m152 \u001b[32;22m+\u001b[38;2;203;166;247munless\u001b[38;2;205;214;244m something\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mzero?\r\n\u001b[39m \u001b[2m153 \u001b[32;22m+\u001b[38;2;205;214;244m do_something\r\n\u001b[39m \u001b[2m154 \u001b[32;22m+\u001b[38;2;203;166;247mend\r\n\u001b[39m \u001b[2m155 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m156 \u001b[32;22m+\r\n\u001b[39m \u001b[2m157 \u001b[32;22m+\u001b[38;2;205;214;244mСложные условия внутри \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244munless\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m лучше не писать: \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244munless a && b\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m читается хуже явного \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mif\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m.\r\n\u001b[39m \u001b[2m158 \u001b[32;22m+\r\n\u001b[39m \u001b[2m159 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mЛогические операторы\r\n\u001b[39m \u001b[2m160 \u001b[32;22m+\r\n\u001b[39m \u001b[2m161 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m162 \u001b[32;22m+\u001b[38;2;243;139;168mtrue\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m&&\u001b[38;2;205;214;244m \u001b[38;2;243;139;168mfalse\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => false\r\n\u001b[39m \u001b[2m163 \u001b[32;22m+\u001b[38;2;243;139;168mfalse\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m||\u001b[38;2;205;214;244m \u001b[38;2;243;139;168mtrue\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => true\r\n\u001b[39m \u001b[2m164 \u001b[32;22m+\u001b[38;2;148;226;213m!\u001b[38;2;243;139;168mtrue\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => false\r\n\u001b[39m \u001b[2m165 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m166 \u001b[32;22m+\r\n\u001b[39m \u001b[2m167 \u001b[32;22m+\u001b[38;2;205;214;244mСравнение с логическими значениями строгое:\r\n\u001b[39m \u001b[2m168 \u001b[32;22m+\r\n\u001b[39m \u001b[2m169 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m170 \u001b[32;22m+\u001b[38;2;243;139;168mtrue\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m==\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m1\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => false\r\n\u001b[39m \u001b[2m171 \u001b[32;22m+\u001b[38;2;243;139;168mfalse\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m==\u001b[38;2;205;214;244m \u001b[38;2;243;139;168mnil\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => false\r\n\u001b[39m \u001b[2m172 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m173 \u001b[32;22m+\r\n\u001b[39m \u001b[2m174 \u001b[32;22m+\u001b[38;2;205;214;244mЛогические операторы возвращают не обязательно \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mtrue\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m или \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mfalse\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m, а последнее вычисленное значение:\r\n\u001b[39m \u001b[2m175 \u001b[32;22m+\r\n\u001b[39m \u001b[2m176 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m177 \u001b[32;22m+\u001b[38;2;250;179;135m0\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m&&\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'one'\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => \"one\"\r\n\u001b[39m \u001b[2m178 \u001b[32;22m+\u001b[38;2;243;139;168mnil\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m&&\u001b[38;2;205;214;244m \u001b[38;2;243;139;168mfalse\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => nil\r\n\u001b[39m \u001b[2m179 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m180 \u001b[32;22m+\r\n\u001b[39m \u001b[2m181 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mОператор \u001b[38;2;147;153;178m`\u001b[38;2;148;226;213m<=>\u001b[38;2;147;153;178m`\r\n\u001b[39m \u001b[2m182 \u001b[32;22m+\r\n\u001b[39m \u001b[2m183 \u001b[32;22m+\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m<=>\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m называют spaceship-оператором. Он возвращает \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m-1\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m, \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m0\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m или \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m1\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m и часто используется при сортир\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mовке:\r\n\u001b[39m \u001b[2m184 \u001b[32;22m+\r\n\u001b[39m \u001b[2m185 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m186 \u001b[32;22m+\u001b[38;2;250;179;135m1\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m<=>\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m1\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => 0\r\n\u001b[39m \u001b[2m187 \u001b[32;22m+\u001b[38;2;250;179;135m2\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m<=>\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m1\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => 1\r\n\u001b[39m \u001b[2m188 \u001b[32;22m+\u001b[38;2;250;179;135m1\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m<=>\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m2\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => -1\r\n\u001b[39m \u001b[2m189 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m190 \u001b[32;22m+\r\n\u001b[39m \u001b[2m191 \u001b[32;22m+\u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mСтроки\r\n\u001b[39m \u001b[2m192 \u001b[32;22m+\r\n\u001b[39m \u001b[2m193 \u001b[32;22m+\u001b[38;2;205;214;244mКонкатенация:\r\n\u001b[39m \u001b[2m194 \u001b[32;22m+\r\n\u001b[39m \u001b[2m195 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m196 \u001b[32;22m+\u001b[38;2;243;139;168mname\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'H'\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'e'\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'x'\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'l'\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'e'\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m't'\r\n\u001b[39m \u001b[2m197 \u001b[32;22m+\u001b[38;2;243;139;168mname\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'H'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'e'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'x'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'l'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'e'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m't'\r\n\u001b[39m \u001b[2m198 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m199 \u001b[32;22m+\r\n\u001b[39m \u001b[2m200 \u001b[32;22m+\u001b[38;2;205;214;244mИнтерполяция работает только в двойных кавычках:\r\n\u001b[39m \u001b[2m201 \u001b[32;22m+\r\n\u001b[39m \u001b[2m202 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m203 \u001b[32;22m+\u001b[38;2;205;214;244mgreeting \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"hello \u001b[38;2;147;153;178m#{\u001b[38;2;243;139;168mname\u001b[38;2;147;153;178m}\u001b[38;2;166;227;161m\"\r\n\u001b[39m \u001b[2m204 \u001b[32;22m+\u001b[38;2;205;214;244mline_feed \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"one line\u001b[38;2;245;194;231m\\n\u001b[38;2;166;227;161manother one\"\r\n\u001b[39m \u001b[2m205 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m206 \u001b[32;22m+\r\n\u001b[39m \u001b[2m207 \u001b[32;22m+\u001b[38;2;205;214;244mПолезные методы:\r\n\u001b[39m \u001b[2m208 \u001b[32;22m+\r\n\u001b[39m \u001b[2m209 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m210 \u001b[32;22m+\u001b[38;2;243;139;168mname\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'ruby'\r\n\u001b[39m \u001b[2m211 \u001b[32;22m+\u001b[38;2;243;139;168mname\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mupcase \u001b[38;2;147;153;178m# => \"RUBY\"\r\n\u001b[39m \u001b[2m212 \u001b[32;22m+\u001b[38;2;243;139;168mname\u001b[38;2;148;226;213m.\u001b[38;2;243;139;168minclude?\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m'ru'\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m213 \u001b[32;22m+\u001b[38;2;243;139;168mname\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mcapitalize \u001b[38;2;147;153;178m# => \"Ruby\"\r\n\u001b[39m \u001b[2m214 \u001b[32;22m+\u001b[38;2;243;139;168mname\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mlength \u001b[38;2;147;153;178m# => 4\r\n\u001b[39m \u001b[2m215 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m216 \u001b[32;22m+\r\n\u001b[39m \u001b[2m217 \u001b[32;22m+\u001b[38;2;205;214;244mСрезы:\r\n\u001b[39m \u001b[2m218 \u001b[32;22m+\r\n\u001b[39m \u001b[2m219 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m220 \u001b[32;22m+\u001b[38;2;243;139;168mname\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'ruby'\r\n\u001b[39m \u001b[2m221 \u001b[32;22m+\u001b[38;2;243;139;168mname\u001b[38;2;147;153;178m[\u001b[38;2;250;179;135m1\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => \"u\"\r\n\u001b[39m \u001b[2m222 \u001b[32;22m+\u001b[38;2;243;139;168mname\u001b[38;2;147;153;178m[\u001b[38;2;148;226;213m-\u001b[38;2;250;179;135m1\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => \"y\"\r\n\u001b[39m \u001b[2m223 \u001b[32;22m+\u001b[38;2;243;139;168mname\u001b[38;2;147;153;178m[\u001b[38;2;250;179;135m0\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m2\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => \"ru\"\r\n\u001b[39m \u001b[2m224 \u001b[32;22m+\u001b[38;2;243;139;168mname\u001b[38;2;147;153;178m[\u001b[38;2;250;179;135m0\u001b[38;2;148;226;213m..-\u001b[38;2;250;179;135m2\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => \"rub\"\r\n\u001b[39m \u001b[2m225 \u001b[32;22m+\u001b[38;2;243;139;168mname\u001b[38;2;147;153;178m[\u001b[38;2;148;226;213m-\u001b[38;2;250;179;135m4\u001b[38;2;148;226;213m..\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => \"ruby\"\r\n\u001b[39m \u001b[2m226 \u001b[32;22m+\u001b[38;2;243;139;168mname\u001b[38;2;147;153;178m[\u001b[38;2;245;194;231m/\u001b[38;2;166;227;161mru\u001b[38;2;245;194;231m/\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m# => \"ru\"\r\n\u001b[39m \u001b[2m227 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m228 \u001b[32;22m+\r\n\u001b[39m \u001b[2m229 \u001b[32;22m+\u001b[38;2;205;214;244mПример маскирования номера карты:\r\n\u001b[39m \u001b[2m230 \u001b[32;22m+\r\n\u001b[39m \u001b[2m231 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m232 \u001b[32;22m+\u001b[38;2;203;166;247mdef\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mprepare_card_for_display\u001b[38;2;147;153;178m(\u001b[38;2;235;160;172mnum\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m233 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"**\u001b[38;2;147;153;178m#{\u001b[38;2;205;214;244mnum\u001b[38;2;147;153;178m[\u001b[38;2;148;226;213m-\u001b[38;2;250;179;135m4\u001b[38;2;148;226;213m..\u001b[38;2;147;153;178m]}\u001b[38;2;166;227;161m\"\r\n\u001b[39m \u001b[2m234 \u001b[32;22m+\u001b[38;2;203;166;247mend\r\n\u001b[39m \u001b[2m235 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m236 \u001b[32;22m+\r\n\u001b[0m \u001b[2m237 \u001b[0m \u001b[38;2;147;153;178m##\u001b[38;2;250;179;135m \u001b[38;2;148;226;213mЦиклы\u001b[92X\r\n\r\n\u001b[39;2m─────────────────────────────────────────────────────────────────────────────────────────────────────────────\r\n\r\n• \u001b[0mОсновные заметки обновлены. Переношу исходники в \u001b[36m99 System/Archive/\u001b[0m, затем пересоберу \u001b[36mINDEX.md\u001b[0m, чтобы\r\n появились новые пути и статусы.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mmv\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'00 Inbox/Знания Ruby.md'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'99 System/Archive/Знания Ruby.md'\r\n\u001b[39;2m └ (no output)\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mmv\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'00 Inbox/Итераторы для обработки массивов Ruby.md'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'99 System/Archive/Итераторы для обработки\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mмассивов Ruby.md'\r\n\u001b[39;2m └ (no output)\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mmv\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'00 Inbox/В случае ошибок на принтере Kyocera FS-1020MFP.md'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'99 System/Archive/В случае ошибок на\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mпринтере Kyocera FS-1020MFP.md'\r\n\u001b[39;2m └ (no output)\r\n\r\n\u001b[31;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpython3\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mc\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mfrom pathlib import Path\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mfrom collections import defaultdict, Counter\r\n\u001b[39;2m │ … +101 lines\r\n └ zsh:103: unmatched \"\r\n\r\n─────────────────────────────────────────────────────────────────────────────────────────────────────────────\r\n\r\n• \u001b[0mКоманда регенерации индекса упала на кавычках shell, файлы не затронула. Вынесу короткий скрипт во\r\n временный файл и запущу его, чтобы не рисковать кривым quoting.\r\n\r\n\u001b[2m• \u001b[0mAdded /tmp/regenerate_secondbrain_index.py (\u001b[32m+124\u001b[0m \u001b[31m-0\u001b[0m)\r\n\u001b[48;5;22m \u001b[2m 1 \u001b[32;22m+\u001b[38;2;203;166;247mfrom\u001b[38;2;205;214;244m collections \u001b[38;2;203;166;247mimport\u001b[38;2;205;214;244m Counter\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m defaultdict\u001b[56X\r\n\u001b[39m \u001b[2m 2 \u001b[32;22m+\u001b[38;2;203;166;247mfrom\u001b[38;2;205;214;244m pathlib \u001b[38;2;203;166;247mimport\u001b[38;2;205;214;244m Path\r\n\u001b[39m \u001b[2m 3 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 4 \u001b[32;22m+\u001b[38;2;205;214;244mroot \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mPath\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\".\"\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m 5 \u001b[32;22m+\u001b[38;2;205;214;244mskip_dirs \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m{\u001b[38;2;166;227;161m\".trash\"\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\".obsidian\"\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\".git\"\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\".smart-env\"\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\".stversions\"\u001b[38;2;147;153;178m}\r\n\u001b[39m \u001b[2m 6 \u001b[32;22m+\u001b[38;2;205;214;244mindex_name \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"INDEX.md\"\r\n\u001b[39m \u001b[2m 7 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 8 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 9 \u001b[32;22m+\u001b[38;2;203;166;247mdef\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mclean_scalar\u001b[38;2;147;153;178m(\u001b[38;2;235;160;172mvalue\u001b[38;2;147;153;178m):\r\n\u001b[39m \u001b[2m 10 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mreturn\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mvalue\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mstrip\u001b[38;2;147;153;178m()\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mstrip\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m'\"'\u001b[38;2;147;153;178m)\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mstrip\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\"'\"\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m 11 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 12 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 13 \u001b[32;22m+\u001b[38;2;203;166;247mdef\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mparse_frontmatter\u001b[38;2;147;153;178m(\u001b[38;2;235;160;172mtext\u001b[38;2;147;153;178m):\r\n\u001b[39m \u001b[2m 14 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mnot\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mtext\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mstartswith\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\"---\u001b[38;2;245;194;231m\\n\u001b[38;2;166;227;161m\"\u001b[38;2;147;153;178m):\r\n\u001b[39m \u001b[2m 15 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mreturn\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m{}\r\n\u001b[39m \u001b[2m 16 \u001b[32;22m+\u001b[38;2;205;214;244m end \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mtext\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mfind\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\"\u001b[38;2;245;194;231m\\n\u001b[38;2;166;227;161m---\"\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m4\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m 17 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m end \u001b[38;2;148;226;213m==\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m-\u001b[38;2;250;179;135m1\u001b[38;2;147;153;178m:\r\n\u001b[39m \u001b[2m 18 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mreturn\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m{}\r\n\u001b[39m \u001b[2m 19 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 20 \u001b[32;22m+\u001b[38;2;205;214;244m data \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m{}\r\n\u001b[39m \u001b[2m 21 \u001b[32;22m+\u001b[38;2;205;214;244m current \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;250;179;135mNone\r\n\u001b[39m \u001b[2m 22 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mfor\u001b[38;2;205;214;244m line \u001b[38;2;203;166;247min\u001b[38;2;205;214;244m \u001b[38;2;235;160;172mtext\u001b[38;2;147;153;178m[\u001b[38;2;250;179;135m4\u001b[38;2;147;153;178m:\u001b[38;2;205;214;244mend\u001b[38;2;147;153;178m]\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250msplitlines\u001b[38;2;147;153;178m():\r\n\u001b[39m \u001b[2m 23 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mnot\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mline\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mstrip\u001b[38;2;147;153;178m()\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mor\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mline\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mlstrip\u001b[38;2;147;153;178m()\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mstartswith\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\"#\"\u001b[38;2;147;153;178m):\r\n\u001b[39m \u001b[2m 24 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mcontinue\r\n\u001b[39m \u001b[2m 25 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mline\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mstartswith\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\" - \"\u001b[38;2;147;153;178m)\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mand\u001b[38;2;205;214;244m current\u001b[38;2;147;153;178m:\r\n\u001b[39m \u001b[2m 26 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mdata\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250msetdefault\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mcurrent\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m[])\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mappend\u001b[38;2;147;153;178m(\u001b[38;2;137;180;250mclean_scalar\u001b[38;2;147;153;178m(\u001b[38;2;235;160;172mline\u001b[38;2;147;153;178m[\u001b[38;2;250;179;135m4\u001b[38;2;147;153;178m:]))\r\n\u001b[39m \u001b[2m 27 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mcontinue\r\n\u001b[39m \u001b[2m 28 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\":\"\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mnot\u001b[38;2;205;214;244m \u001b[38;2;203;166;247min\u001b[38;2;205;214;244m line\u001b[38;2;147;153;178m:\r\n\u001b[39m \u001b[2m 29 \u001b[32;22m+\u001b[38;2;205;214;244m current \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;250;179;135mNone\r\n\u001b[39m \u001b[2m 30 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mcontinue\r\n\u001b[39m \u001b[2m 31 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 32 \u001b[32;22m+\u001b[38;2;205;214;244m key, value \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mline\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250msplit\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\":\"\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m1\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m 33 \u001b[32;22m+\u001b[38;2;205;214;244m key \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mkey\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mstrip\u001b[38;2;147;153;178m()\r\n\u001b[39m \u001b[2m 34 \u001b[32;22m+\u001b[38;2;205;214;244m value \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mvalue\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mstrip\u001b[38;2;147;153;178m()\r\n\u001b[39m \u001b[2m 35 \u001b[32;22m+\u001b[38;2;205;214;244m current \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m key\r\n\u001b[39m \u001b[2m 36 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 37 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m value \u001b[38;2;148;226;213m==\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"\"\u001b[38;2;147;153;178m:\r\n\u001b[39m \u001b[2m 38 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;235;160;172mdata\u001b[38;2;147;153;178m[\u001b[38;2;205;214;244mkey\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m[]\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m key \u001b[38;2;148;226;213m==\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"tags\"\u001b[38;2;205;214;244m \u001b[38;2;203;166;247melse\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"\"\r\n\u001b[39m \u001b[2m 39 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247melif\u001b[38;2;205;214;244m value \u001b[38;2;148;226;213m==\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"[]\"\u001b[38;2;147;153;178m:\r\n\u001b[39m \u001b[2m 40 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;235;160;172mdata\u001b[38;2;147;153;178m[\u001b[38;2;205;214;244mkey\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m[]\r\n\u001b[39m \u001b[2m 41 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247melif\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mvalue\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mstartswith\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\"[\"\u001b[38;2;147;153;178m)\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mand\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mvalue\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mendswith\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\"]\"\u001b[38;2;147;153;178m):\r\n\u001b[39m \u001b[2m 42 \u001b[32;22m+\u001b[38;2;205;214;244m inner \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;235;160;172mvalue\u001b[38;2;147;153;178m[\u001b[38;2;250;179;135m1\u001b[38;2;147;153;178m:\u001b[38;2;148;226;213m-\u001b[38;2;250;179;135m1\u001b[38;2;147;153;178m]\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mstrip\u001b[38;2;147;153;178m()\r\n\u001b[39m \u001b[2m 43 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;235;160;172mdata\u001b[38;2;147;153;178m[\u001b[38;2;205;214;244mkey\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m[\u001b[38;2;137;180;250mclean_scalar\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mx\u001b[38;2;147;153;178m)\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mfor\u001b[38;2;205;214;244m x \u001b[38;2;203;166;247min\u001b[38;2;205;214;244m \u001b[38;2;137;180;250minner\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250msplit\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\",\"\u001b[38;2;147;153;178m)\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mx\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mstrip\u001b[38;2;147;153;178m()]\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m inner \u001b[38;2;203;166;247melse\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m[]\r\n\u001b[39m \u001b[2m 44 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247melse\u001b[38;2;147;153;178m:\r\n\u001b[39m \u001b[2m 45 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;235;160;172mdata\u001b[38;2;147;153;178m[\u001b[38;2;205;214;244mkey\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mclean_scalar\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mvalue\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m 46 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 47 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mreturn\u001b[38;2;205;214;244m data\r\n\u001b[39m \u001b[2m 48 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 49 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 50 \u001b[32;22m+\u001b[38;2;203;166;247mdef\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mfmt\u001b[38;2;147;153;178m(\u001b[38;2;235;160;172mvalue\u001b[38;2;147;153;178m):\r\n\u001b[39m \u001b[2m 51 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m value \u001b[38;2;203;166;247mis\u001b[38;2;205;214;244m \u001b[38;2;250;179;135mNone\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mor\u001b[38;2;205;214;244m value \u001b[38;2;148;226;213m==\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"\"\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mor\u001b[38;2;205;214;244m value \u001b[38;2;148;226;213m==\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m[]:\r\n\u001b[39m \u001b[2m 52 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mreturn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"—\"\r\n\u001b[39m \u001b[2m 53 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m \u001b[38;2;250;179;135misinstance\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mvalue\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mlist\u001b[38;2;147;153;178m):\r\n\u001b[39m \u001b[2m 54 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mreturn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\", \"\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mjoin\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mvalue\u001b[38;2;147;153;178m)\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m value \u001b[38;2;203;166;247melse\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"—\"\r\n\u001b[39m \u001b[2m 55 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mreturn\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mstr\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mvalue\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m 56 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 57 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 58 \u001b[32;22m+\u001b[38;2;205;214;244mnotes \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m[]\r\n\u001b[39m \u001b[2m 59 \u001b[32;22m+\u001b[38;2;203;166;247mfor\u001b[38;2;205;214;244m path \u001b[38;2;203;166;247min\u001b[38;2;205;214;244m \u001b[38;2;250;179;135msorted\u001b[38;2;147;153;178m(\u001b[38;2;137;180;250mroot\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mrglob\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\"*.md\"\u001b[38;2;147;153;178m),\u001b[38;2;205;214;244m \u001b[38;2;235;160;172mkey\u001b[38;2;148;226;213m=\u001b[38;2;203;166;247mlambda\u001b[38;2;205;214;244m \u001b[38;2;235;160;172mp\u001b[38;2;147;153;178m:\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mstr\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mp\u001b[38;2;147;153;178m)):\r\n\u001b[39m \u001b[2m 60 \u001b[32;22m+\u001b[38;2;205;214;244m rel \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mpath\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mrelative_to\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mroot\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m 61 \u001b[32;22m+\u001b[38;2;205;214;244m parts \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m rel\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mparts\r\n\u001b[39m \u001b[2m 62 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m rel\u001b[38;2;148;226;213m.\u001b[38;2;205;214;244mname \u001b[38;2;148;226;213m==\u001b[38;2;205;214;244m index_name\u001b[38;2;147;153;178m:\r\n\u001b[39m \u001b[2m 63 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mcontinue\r\n\u001b[39m \u001b[2m 64 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m \u001b[38;2;250;179;135many\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mpart \u001b[38;2;203;166;247min\u001b[38;2;205;214;244m skip_dirs \u001b[38;2;203;166;247mfor\u001b[38;2;205;214;244m part \u001b[38;2;203;166;247min\u001b[38;2;205;214;244m parts\u001b[38;2;147;153;178m):\r\n\u001b[39m \u001b[2m 65 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mcontinue\r\n\u001b[39m \u001b[2m 66 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 67 \u001b[32;22m+\u001b[38;2;205;214;244m fm \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mparse_frontmatter\u001b[38;2;147;153;178m(\u001b[38;2;137;180;250mpath\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mread_text\u001b[38;2;147;153;178m(\u001b[38;2;235;160;172mencoding\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"utf-8\"\u001b[38;2;147;153;178m))\r\n\u001b[39m \u001b[2m 68 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mnotes\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mappend\u001b[38;2;147;153;178m(\r\n\u001b[39m \u001b[2m 69 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m{\r\n\u001b[39m \u001b[2m 70 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"path\"\u001b[38;2;147;153;178m:\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mstr\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mrel\u001b[38;2;147;153;178m),\r\n\u001b[39m \u001b[2m 71 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"section\"\u001b[38;2;147;153;178m:\u001b[38;2;205;214;244m \u001b[38;2;235;160;172mparts\u001b[38;2;147;153;178m[\u001b[38;2;250;179;135m0\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m parts \u001b[38;2;203;166;247melse\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m 72 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"title\"\u001b[38;2;147;153;178m:\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mfmt\u001b[38;2;147;153;178m(\u001b[38;2;137;180;250mfm\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mget\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\"title\"\u001b[38;2;147;153;178m)),\r\n\u001b[39m \u001b[2m 73 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"status\"\u001b[38;2;147;153;178m:\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mfmt\u001b[38;2;147;153;178m(\u001b[38;2;137;180;250mfm\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mget\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\"status\"\u001b[38;2;147;153;178m)),\r\n\u001b[39m \u001b[2m 74 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"type\"\u001b[38;2;147;153;178m:\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mfmt\u001b[38;2;147;153;178m(\u001b[38;2;137;180;250mfm\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mget\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\"type\"\u001b[38;2;147;153;178m)),\r\n\u001b[39m \u001b[2m 75 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"tags\"\u001b[38;2;147;153;178m:\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mfmt\u001b[38;2;147;153;178m(\u001b[38;2;137;180;250mfm\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mget\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\"tags\"\u001b[38;2;147;153;178m)),\r\n\u001b[39m \u001b[2m 76 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m}\r\n\u001b[39m \u001b[2m 77 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m 78 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 79 \u001b[32;22m+\u001b[38;2;205;214;244mby_section \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mdefaultdict\u001b[38;2;147;153;178m(\u001b[38;2;203;166;247mlist\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m 80 \u001b[32;22m+\u001b[38;2;203;166;247mfor\u001b[38;2;205;214;244m note \u001b[38;2;203;166;247min\u001b[38;2;205;214;244m notes\u001b[38;2;147;153;178m:\r\n\u001b[39m \u001b[2m 81 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;235;160;172mby_section\u001b[38;2;147;153;178m[\u001b[38;2;235;160;172mnote\u001b[38;2;147;153;178m[\u001b[38;2;166;227;161m\"section\"\u001b[38;2;147;153;178m]]\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mappend\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mnote\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m 82 \u001b[32;22m+\r\n\u001b[39m \u001b[2m 83 \u001b[32;22m+\u001b[38;2;205;214;244mstatus_counts \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mCounter\u001b[38;2;147;153;178m(\u001b[38;2;235;160;172mnote\u001b[38;2;147;153;178m[\u001b[38;2;166;227;161m\"status\"\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mfor\u001b[38;2;205;214;244m note \u001b[38;2;203;166;247min\u001b[38;2;205;214;244m notes\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m 84 \u001b[32;22m+\u001b[38;2;205;214;244mlines \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m[\r\n\u001b[39m \u001b[2m 85 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"---\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m 86 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"generated: 2026-05-26\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m 87 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161mf\"total: \u001b[38;2;147;153;178m{\u001b[38;2;250;179;135mlen\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mnotes\u001b[38;2;147;153;178m)}\u001b[38;2;166;227;161m\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m 88 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"---\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m 89 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m 90 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"# Vault Index\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m 91 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m 92 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"Служебный файл для LLM-агента. Не редактировать вручную.\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m 93 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m 94 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"## Статистика\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m 95 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m 96 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"| Параметр | Значение |\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m 97 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"|----------|----------|\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m 98 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161mf\"| Всего заметок | \u001b[38;2;147;153;178m{\u001b[38;2;250;179;135mlen\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mnotes\u001b[38;2;147;153;178m)}\u001b[38;2;166;227;161m |\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m 99 \u001b[32;22m+\u001b[38;2;147;153;178m]\r\n\u001b[39m \u001b[2m100 \u001b[32;22m+\r\n\u001b[39m \u001b[2m101 \u001b[32;22m+\u001b[38;2;203;166;247mfor\u001b[38;2;205;214;244m status \u001b[38;2;203;166;247min\u001b[38;2;205;214;244m \u001b[38;2;250;179;135msorted\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mstatus_counts\u001b[38;2;147;153;178m):\r\n\u001b[39m \u001b[2m102 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mlines\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mappend\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161mf\"| status: \u001b[38;2;147;153;178m{\u001b[38;2;205;214;244mstatus\u001b[38;2;147;153;178m}\u001b[38;2;166;227;161m | \u001b[38;2;147;153;178m{\u001b[38;2;235;160;172mstatus_counts\u001b[38;2;147;153;178m[\u001b[38;2;205;214;244mstatus\u001b[38;2;147;153;178m]}\u001b[38;2;166;227;161m |\"\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m103 \u001b[32;22m+\r\n\u001b[39m \u001b[2m104 \u001b[32;22m+\u001b[38;2;137;180;250mlines\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mextend\u001b[38;2;147;153;178m(\r\n\u001b[39m \u001b[2m105 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m[\r\n\u001b[39m \u001b[2m106 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m107 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"## Заметки\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m108 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m109 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"Формат: `путь` | title | status | type | tags\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m110 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"\"\u001b[38;2;147;153;178m,\r\n\u001b[39m \u001b[2m111 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m]\r\n\u001b[39m \u001b[2m112 \u001b[32;22m+\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m113 \u001b[32;22m+\r\n\u001b[39m \u001b[2m114 \u001b[32;22m+\u001b[38;2;203;166;247mfor\u001b[38;2;205;214;244m section \u001b[38;2;203;166;247min\u001b[38;2;205;214;244m \u001b[38;2;250;179;135msorted\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mby_section\u001b[38;2;147;153;178m):\r\n\u001b[39m \u001b[2m115 \u001b[32;22m+\u001b[38;2;205;214;244m items \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;235;160;172mby_section\u001b[38;2;147;153;178m[\u001b[38;2;205;214;244msection\u001b[38;2;147;153;178m]\r\n\u001b[39m \u001b[2m116 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mlines\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mappend\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161mf\"### \u001b[38;2;147;153;178m{\u001b[38;2;205;214;244msection\u001b[38;2;147;153;178m}\u001b[38;2;166;227;161m (\u001b[38;2;147;153;178m{\u001b[38;2;250;179;135mlen\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mitems\u001b[38;2;147;153;178m)}\u001b[38;2;166;227;161m)\"\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m117 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mlines\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mappend\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\"\"\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m118 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mfor\u001b[38;2;205;214;244m note \u001b[38;2;203;166;247min\u001b[38;2;205;214;244m items\u001b[38;2;147;153;178m:\r\n\u001b[39m \u001b[2m119 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mlines\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mappend\u001b[38;2;147;153;178m(\r\n\u001b[39m \u001b[2m120 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161mf\"| `\u001b[38;2;147;153;178m{\u001b[38;2;235;160;172mnote\u001b[38;2;147;153;178m[\u001b[38;2;166;227;161m'path'\u001b[38;2;147;153;178m]}\u001b[38;2;166;227;161m` | \u001b[38;2;147;153;178m{\u001b[38;2;235;160;172mnote\u001b[38;2;147;153;178m[\u001b[38;2;166;227;161m'title'\u001b[38;2;147;153;178m]}\u001b[38;2;166;227;161m | \u001b[38;2;147;153;178m{\u001b[38;2;235;160;172mnote\u001b[38;2;147;153;178m[\u001b[38;2;166;227;161m'status'\u001b[38;2;147;153;178m]}\u001b[38;2;166;227;161m | \u001b[38;2;147;153;178m{\u001b[38;2;235;160;172mnote\u001b[38;2;147;153;178m[\u001b[38;2;166;227;161m'type'\u001b[38;2;147;153;178m]}\u001b[38;2;166;227;161m | \u001b[38;2;147;153;178m{\u001b[38;2;235;160;172mnote\u001b[38;2;147;153;178m[\u001b[38;2;166;227;161m'tags\r\n\u001b[39m \u001b[2m \u001b[38;2;166;227;161;22m'\u001b[38;2;147;153;178m]}\u001b[38;2;166;227;161m |\"\r\n\u001b[39m \u001b[2m121 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m122 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mlines\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mappend\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\"\"\u001b[38;2;147;153;178m)\r\n\u001b[39m \u001b[2m123 \u001b[32;22m+\r\n\u001b[39m \u001b[2m124 \u001b[32;22m+\u001b[38;2;137;180;250mPath\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mindex_name\u001b[38;2;147;153;178m)\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mwrite_text\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\"\u001b[38;2;245;194;231m\\n\u001b[38;2;166;227;161m\"\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mjoin\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mlines\u001b[38;2;147;153;178m)\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mrstrip\u001b[38;2;147;153;178m()\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"\u001b[38;2;245;194;231m\\n\u001b[38;2;166;227;161m\"\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m \u001b[38;2;235;160;172mencoding\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"utf-8\"\u001b[38;2;147;153;178m)\r\n\u001b[0m\u001b[109X\r\n\u001b[31;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpython3\u001b[38;2;205;214;244m /tmp/regenerate_secondbrain_index.py\r\n\u001b[39;2m └ Traceback (most recent call last):\r\n\u001b[0m \u001b[2m File \"/tmp/regenerate_secondbrain_index.py\", line 67, in <module>\r\n … +3 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n\u001b[0m \u001b[2mAttributeError: 'str' object has no attribute 'append'\r\n\r\n─────────────────────────────────────────────────────────────────────────────────────────────────────────────\r\n\r\n• \u001b[0mСкрипт нашёл YAML-список не только в \u001b[36mtags\u001b[0m; поправляю парсер списков и запускаю повторно.\r\n\r\n\u001b[2m• \u001b[0mEdited /tmp/regenerate_secondbrain_index.py (\u001b[32m+3\u001b[0m \u001b[31m-1\u001b[0m)\r\n \u001b[2m25 \u001b[0m \u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mline\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mstartswith\u001b[38;2;147;153;178m(\u001b[38;2;166;227;161m\" - \"\u001b[38;2;147;153;178m)\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mand\u001b[38;2;205;214;244m current\u001b[38;2;147;153;178m:\r\n\u001b[39;48;5;52m \u001b[2m26 \u001b[31;22m-\u001b[38;2;205;214;244;2m \u001b[38;2;137;180;250mdata\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250msetdefault\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mcurrent\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m[])\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mappend\u001b[38;2;147;153;178m(\u001b[38;2;137;180;250mclean_scalar\u001b[38;2;147;153;178m(\u001b[38;2;235;160;172mline\u001b[38;2;147;153;178m[\u001b[38;2;250;179;135m4\u001b[38;2;147;153;178m:]))\u001b[30X\r\n\u001b[39;48;5;22;22m \u001b[2m26 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mif\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mnot\u001b[38;2;205;214;244m \u001b[38;2;250;179;135misinstance\u001b[38;2;147;153;178m(\u001b[38;2;137;180;250mdata\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mget\u001b[38;2;147;153;178m(\u001b[38;2;205;214;244mcurrent\u001b[38;2;147;153;178m),\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mlist\u001b[38;2;147;153;178m):\u001b[46X\r\n\u001b[39m \u001b[2m27 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;235;160;172mdata\u001b[38;2;147;153;178m[\u001b[38;2;205;214;244mcurrent\u001b[38;2;147;153;178m]\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m[]\r\n\u001b[39m \u001b[2m28 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;235;160;172mdata\u001b[38;2;147;153;178m[\u001b[38;2;205;214;244mcurrent\u001b[38;2;147;153;178m]\u001b[38;2;148;226;213m.\u001b[38;2;137;180;250mappend\u001b[38;2;147;153;178m(\u001b[38;2;137;180;250mclean_scalar\u001b[38;2;147;153;178m(\u001b[38;2;235;160;172mline\u001b[38;2;147;153;178m[\u001b[38;2;250;179;135m4\u001b[38;2;147;153;178m:]))\r\n\u001b[0m \u001b[2m29 \u001b[0m \u001b[38;2;205;214;244m \u001b[38;2;203;166;247mcontinue\u001b[81X\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpython3\u001b[38;2;205;214;244m /tmp/regenerate_secondbrain_index.py\r\n\u001b[39;2m └ (no output)\r\n\r\n─────────────────────────────────────────────────────────────────────────────────────────────────────────────\r\n\r\n• \u001b[36;22mINDEX.md\u001b[0m пересобран. Проверяю итоговый diff и наличие исходников в архиве, чтобы поймать ошибки до\r\n финального отчёта.\r\n\r\n\u001b[31;1m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput without permissionDecision:allow\r\n\r\n\u001b[31;1m•\u001b[0m PreToolUse hook (failed)\r\n error: PreToolUse hook returned updatedInput without permissionDecision:allow\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m git diff\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mname-status\r\n\u001b[39;2m └ M .obsidian/workspace.json\r\n\u001b[0m \u001b[2mD 00 Inbox/В случае ошибок на принтере Kyocera FS-1020MFP.md\r\n … +6 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m--- Changes ---\r\n\r\n └ 99 System/Archive/Знания Ruby.md\r\n\u001b[0m \u001b[2m99 System/Archive/Итераторы для обработки массивов Ruby.md\r\n\u001b[0m \u001b[2m99 System/Archive/В случае ошибок на принтере Kyocera FS-1020MFP.md\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mcommand\u001b[38;2;205;214;244m find \u001b[38;2;166;227;161m'00 Inbox'\u001b[38;2;205;214;244m -maxdepth 1 -type f -print\r\n\u001b[39;2m └ (no output)\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mnE\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'Kyocera FS-1020MFP|Ruby - основы языка|Ruby - массивы|Знания Ruby|Итераторы для обработки\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mмассивов Ruby|В случае ошибок на принтере'\u001b[38;2;205;214;244m INDEX.md\r\n\u001b[39;2m └ 419:| `90 Library/Other/Kyocera FS-1020MFP — ошибки.md` | Kyocera FS-1020MFP — ошибки | seed | guide |\r\n\u001b[0m \u001b[2mother, printer, kyocera |\r\n … +9 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m458:| `99 System/Archive/Итераторы для обработки массивов Ruby.md` | Итераторы для обработки массивов\r\n\u001b[0m \u001b[2mRuby | seed | concept | — |\r\n\u001b[0m \u001b[2m?? \"99 System/Archive/Знания Ruby.md\"\r\n\u001b[0m \u001b[2m?? \"99 System/Archive/Итераторы для обработки массивов Ruby.md\"\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m INDEX.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m git diff\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mstat\u001b[38;2;148;226;213m --\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Programming/Ruby - основы языка.md'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Programming/Ruby -\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mмассивы.md'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Other/Kyocera FS-1020MFP — ошибки.md'\u001b[38;2;205;214;244m INDEX.md\r\n\u001b[39;2m └ 90 Library/Programming/Ruby - массивы.md | 81 ++++++++++++++-\r\n\u001b[0m \u001b[2m 90 Library/Programming/Ruby - основы языка.md | 144 +++++++++++++++++++++++++-\r\n\u001b[0m \u001b[2m INDEX.md | 22 ++--\r\n\u001b[0m \u001b[2m 3 files changed, 232 insertions(+), 15 deletions(-)\r\n\r\n\u001b[32;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m git diff\u001b[38;2;148;226;213m --\u001b[38;2;205;214;244m INDEX.md\r\n\u001b[39;2m └ INDEX.md | 22 +++++++++++++---------\r\n\u001b[0m \u001b[2m 1 file changed, 13 insertions(+), 9 deletions(-)\r\n … +57 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m | `99 System/Archive/КР - Хопфилд.md` | КР - Хопфилд | seed | concept | — |\r\n\u001b[0m \u001b[2m +13 -9\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m Ruby - основы языка.md\u001b[2m, \u001b[0mKyocera FS-1020MFP — ошибки.md\u001b[2m, \u001b[0mRuby - массивы.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m git diff\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mcheck\u001b[38;2;148;226;213m --\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Programming/Ruby - основы языка.md'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Programming/Ruby -\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mмассивы.md'\u001b[38;2;205;214;244m INDEX.md\r\n\u001b[39;2m └\r\n\r\n\u001b[48;5;239;22m\u001b[109X\r\n\u001b[1;2m \u001b[22;22mМожешь чуть побольше про тернарный оператор добавить инфы, а то не совсем понимаю\r\n\r\n\u001b[0m\u001b[109X\r\n\u001b[2m• \u001b[0mПлан: расширю только раздел \u001b[36mТернарный оператор\u001b[0m в \u001b[36m90 Library/Programming/Ruby - основы языка.md\u001b[0m: синтаксис,\r\n смысл возврата значения, 2-3 коротких примера и ограничение по читаемости. \u001b[36mINDEX.md\u001b[0m трогать не нужно,\r\n frontmatter не меняется.\r\n\r\n\u001b[2m• \u001b[0mEdited 90 Library/Programming/Ruby - основы языка.md (\u001b[32m+36\u001b[0m \u001b[31m-2\u001b[0m)\r\n \u001b[2m136\r\n\u001b[48;5;52;22m \u001b[2m137 \u001b[31;22m-\u001b[38;2;205;214;244;2mТернарный оператор:\u001b[81X\r\n\u001b[39;48;5;22;22m \u001b[2m137 \u001b[32;22m+\u001b[38;2;205;214;244mТернарный оператор — короткая форма \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mif/else\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m, когда нужно выбрать одно из двух значений:\u001b[11X\r\n\u001b[39m \u001b[2m138 \u001b[32;22m+\r\n\u001b[39m \u001b[2m139 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m140 \u001b[32;22m+\u001b[38;2;205;214;244mcondition \u001b[38;2;148;226;213m?\u001b[38;2;205;214;244m value_if_true \u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m value_if_false\r\n\u001b[39m \u001b[2m141 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m142 \u001b[32;22m+\r\n\u001b[39m \u001b[2m143 \u001b[32;22m+\u001b[38;2;205;214;244mПример:\r\n\u001b[39m \u001b[2m144 \u001b[32;22m+\r\n\u001b[39m \u001b[2m145 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m146 \u001b[32;22m+\u001b[38;2;205;214;244mage \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m20\r\n\u001b[39m \u001b[2m147 \u001b[32;22m+\u001b[38;2;205;214;244mstatus \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m age \u001b[38;2;148;226;213m>=\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m18\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m?\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'adult'\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'minor'\r\n\u001b[39m \u001b[2m148 \u001b[32;22m+\u001b[38;2;147;153;178m# => \"adult\"\r\n\u001b[39m \u001b[2m149 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m150 \u001b[32;22m+\r\n\u001b[39m \u001b[2m151 \u001b[32;22m+\u001b[38;2;205;214;244mОбычный \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mif/else\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m для того же случая:\r\n\u001b[39m \u001b[2m152 \u001b[32;22m+\r\n\u001b[39m \u001b[2m153 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m157 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247melse\r\n\u001b[39m \u001b[2m158 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'minor'\r\n\u001b[39m \u001b[2m159 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;203;166;247mend\r\n\u001b[39m \u001b[2m160 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m161 \u001b[32;22m+\r\n\u001b[39m \u001b[2m162 \u001b[32;22m+\u001b[38;2;205;214;244mТернарный оператор удобен, когда обе ветки короткие и возвращают простые значения:\r\n\u001b[0m \u001b[2m163\u001b[102X\r\n\u001b[0m \u001b[2m164 \u001b[0m \u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39;48;5;52m \u001b[2m140 \u001b[31;22m-\u001b[38;2;205;214;244;2mv \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m3\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m==\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m4\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m?\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m1\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m0\u001b[82X\r\n\u001b[39;48;5;22;22m \u001b[2m165 \u001b[32;22m+\u001b[38;2;205;214;244mmessage \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m user\u001b[38;2;148;226;213m.\u001b[38;2;243;139;168mnil?\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m?\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'Гость'\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m user\u001b[38;2;148;226;213m.\u001b[38;2;243;139;168mname\u001b[59X\r\n\u001b[39m \u001b[2m166 \u001b[32;22m+\u001b[38;2;205;214;244mprice \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m discount \u001b[38;2;148;226;213m?\u001b[38;2;205;214;244m base_price \u001b[38;2;148;226;213m*\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m0\u001b[38;2;147;153;178m.\u001b[38;2;250;179;135m9\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m base_price\r\n\u001b[39m \u001b[2m167 \u001b[32;22m+\u001b[38;2;147;153;178m```\r\n\u001b[39m \u001b[2m168 \u001b[32;22m+\r\n\u001b[39m \u001b[2m169 \u001b[32;22m+\u001b[38;2;205;214;244mЕсли логика занимает несколько строк, лучше использовать обычный \u001b[38;2;147;153;178m`\u001b[38;2;205;214;244mif/else\u001b[38;2;147;153;178m`\u001b[38;2;205;214;244m. Вложенные тернарные опер\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mаторы тоже лучше не писать: они быстро становятся нечитаемыми.\r\n\u001b[39m \u001b[2m170 \u001b[32;22m+\r\n\u001b[39m \u001b[2m171 \u001b[32;22m+\u001b[38;2;205;214;244mПлохой вариант:\r\n\u001b[39m \u001b[2m172 \u001b[32;22m+\r\n\u001b[39m \u001b[2m173 \u001b[32;22m+\u001b[38;2;147;153;178m```\u001b[38;2;205;214;244mruby\r\n\u001b[39m \u001b[2m174 \u001b[32;22m+\u001b[38;2;205;214;244mresult \u001b[38;2;148;226;213m=\u001b[38;2;205;214;244m a \u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m0\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m?\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'positive'\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m a \u001b[38;2;148;226;213m<\u001b[38;2;205;214;244m \u001b[38;2;250;179;135m0\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m?\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'negative'\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m:\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'zero'\r\n\u001b[0m \u001b[2m175 \u001b[0m \u001b[38;2;147;153;178m```\u001b[97X\r\n\r\n\u001b[39;2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m Ruby - основы языка.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m git diff\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mcheck\u001b[38;2;148;226;213m --\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library/Programming/Ruby - основы языка.md'\r\n\u001b[39;2m └\r\n\r\n─────────────────────────────────────────────────────────────────────────────────────────────────────────────\r\n\r\n• \u001b[0mДобавил расширение в \u001b[36m90 Library/Programming/Ruby - основы языка.md:129\u001b[0m: синтаксис тернарного оператора,\r\n пример с \u001b[36mage\u001b[0m, эквивалент через обычный \u001b[36mif/else\u001b[0m, типовые случаи применения и предупреждение про вложенные\r\n тернарники.\r\n\r\n Проверил \u001b[36mgit diff --check\u001b[0m по файлу, проблем с пробелами нет.\r\n\r\n\u001b[2m─ Worked for 2m 40s ─────────────────────────────────────────────────────────────────────────────────────────\r\n\r\n\u001b[48;5;239;22m \u001b[108X\r\n\u001b[1m\u001b[22m \u001b[2mExplain this codebase\r\n\u001b[0m * Restored history at Fri May 29 2026 07:34:49 GMT+0300 (Москва, стандартное время)\u001b[48;5;239m\r\n\u001b[0m\u001b[2X\u001b[2C\u001b[38;2;246;226;183mgpt-5.5 high fast\u001b[39;2m · \u001b[38;2;171;223;167;22m~/Documents/Vaults/SecondBrain\u001b[57X\r\n\u001b[38;5;76m\u001b[0m \u001b[32mgemini\r\n\u001b[0m󰖟 Proxy enabled (127.0.0.1:2080)\r\n\r\n \u001b[38;5;74m▝\u001b[38;5;110m▜\u001b[38;5;140m▄\u001b[38;5;139m \u001b[38;5;174m \u001b[0m \u001b[38;5;231;1mGemini CLI\u001b[38;5;248;22m v0.43.0\r\n\u001b[0m \u001b[38;5;74m \u001b[38;5;110m \u001b[38;5;140m▝\u001b[38;5;139m▜\u001b[38;5;174m▄\r\n\u001b[0m \u001b[38;5;74m \u001b[38;5;110m▗\u001b[38;5;140m▟\u001b[38;5;139m▀\u001b[38;5;174m \u001b[0m \u001b[38;5;231;1mSigned in with Google\u001b[38;5;248;22m /auth\r\n\u001b[0m \u001b[38;5;74m▝\u001b[38;5;110m▀\u001b[38;5;140m \u001b[38;5;139m \u001b[38;5;174m \u001b[0m \u001b[38;5;231;1mPlan:\u001b[22m Gemini Code Assist in Google One AI Pro\u001b[38;5;248m /upgrade\r\n\r\n\r\n\u001b[38;5;229m MCP issues detected. Run /mcp list for status.\r\n\u001b[38;5;217m✕ Automatic update failed. Please try updating manually:\r\n\r\n\u001b[0m \u001b[38;5;217mnpm install -g @google/gemini-cli@0.44.1\r\n\r\n\u001b[39;48;5;60m \r\n \u001b[38;5;183m> /quit\u001b[39m \r\n\u001b[38;5;102;49m│\u001b[0m \u001b[38;5;147mWall Time:\u001b[0m \u001b[38;5;231m9.1s\u001b[0m \u001b[38;5;102m│\r\n│\u001b[0m \u001b[38;5;147mAgent Active:\u001b[0m \u001b[38;5;231m1.4s\u001b[0m \u001b[38;5;102m│\r\n│\u001b[0m \u001b[38;5;248m» API Time:\u001b[0m \u001b[38;5;231m1.4s \u001b[38;5;248m(100.0%)\u001b[0m \u001b[38;5;102m│\r\n│\u001b[0m \u001b[38;5;248m» Tool Time:\u001b[0m \u001b[38;5;231m0s \u001b[38;5;248m(0.0%)\u001b[0m \u001b[38;5;102m│\r\n│\u001b[0m \u001b[38;5;102m│\r\n│\u001b[0m \u001b[38;5;102m│\r\n│\u001b[0m \u001b[38;5;231;1mModel Usage\u001b[0m \u001b[38;5;102m│\r\n│\u001b[0m \u001b[38;5;248;1mModel\u001b[0m \u001b[38;5;248;1mReqs\u001b[0m \u001b[38;5;248;1mInput Tokens\u001b[0m \u001b[38;5;248;1mCache Reads\u001b[0m \u001b[38;5;248;1mOutput Tokens\u001b[0m \u001b[38;5;102m│\r\n│\u001b[0m \u001b[38;5;102m───────────────────────────────────────────────────────────────────────────────────────────────────────\u001b[0m \u001b[38;5;102m│\r\n\u001b[0m󰖟 Proxy enabled (127.0.0.1:2080)\r\nWARNING: failed to clean up stale arg0 temp dirs: Permission denied (os error 13)\r\n\u001b[2m╭───────────────────────────────────────────────────────────────╮\r\n│ \u001b[36;1;22m✨ Update available!\u001b[0m \u001b[1m0.133.0 -> 0.134.0\u001b[22;2m │\r\n│ \u001b[0mSee \u001b[36;4mhttps://github.com/openai/codex\u001b[0m for installation options.\u001b[2m │\r\n│ │\r\n\r\n╭───────────────────────────────────────────────────╮\r\n│ >_ \u001b[1;22mOpenAI Codex\u001b[22;2m (v0.133.0) │\r\n│ │\r\n│ model: \u001b[0mgpt-5.5 high \u001b[35mfast\u001b[39;2m \u001b[36;22m/model\u001b[39;2m to change │\r\n│ directory: \u001b[0m~/Documents/Vaults/SecondBrain\u001b[2m │\r\n╰───────────────────────────────────────────────────╯\r\n\r\n\u001b[0m \u001b[1mTip:\u001b[0m Use /init to create an AGENTS.md with project-specific guidance.\r\n\r\n\u001b[2m• \u001b[0mService tier set to default\r\n\r\n\u001b[48;5;239m\u001b[109X\r\n\u001b[1;2m \u001b[22;22mingest\r\n\r\n\u001b[0m\u001b[109X\r\n\u001b[2m• \u001b[0mСначала проверю \u001b[36mINDEX.md\u001b[0m, входящие файлы и доступные шаблоны, затем дам план ingest и остановлюсь на\r\n подтверждении перед правками.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpwd\r\n\u001b[39;2m └ /home/ada/Documents/Vaults/SecondBrain\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m INDEX.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m 99\u001b[38;2;245;194;231m\\ \u001b[38;2;205;214;244mSystem/Template\r\n\u001b[0m \u001b[2mStudy Item.md 396B\r\n\u001b[0m \u001b[2mTravel Item.md 272B\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m 00\u001b[38;2;245;194;231m\\ \u001b[38;2;205;214;244mInbox\r\n\u001b[39;2m └ Команды для деплоя с помощью Capistrano.md 1.0K\r\n\u001b[0m \u001b[2mМИАД_Л1.pdf 1.4M\r\n\u001b[0m \u001b[2mМИАД_Л2.pdf 1.2M\r\n\u001b[0m \u001b[2mМИАД_Л3_нечеткий_вывод.pdf 1.6M\r\n\u001b[0m \u001b[2mМИАД_Л4_иерархии.pdf 1.8M\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\r\n\u001b[39;2m └ .claude/\r\n\u001b[0m \u001b[2m.git/\r\n … +16 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mGEMINI.md 329B\r\n\u001b[0m \u001b[2mINDEX.md 71.0K\r\n\r\n─────────────────────────────────────────────────────────────────────────────────────────────────────────────\r\n\r\n• \u001b[0mВ \u001b[36m00 Inbox/\u001b[0m нашёл один markdown по Capistrano и четыре PDF-лекции МИАД. Сейчас быстро проверю содержание и\r\n близкие заметки, чтобы не предложить дубли.\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m Команды для деплоя с помощью Capistrano.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m read \u001b[38;2;166;227;161m'99 System/Template/Study Item.md'\r\n\u001b[39;2m └ ---\r\n\u001b[0m \u001b[2mtags: []\r\n … +20 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m## Связанные Ссылки\r\n\u001b[0m \u001b[2m- [[StudyTracker|📁 Трекер обучения]]\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m read \u001b[38;2;166;227;161m'99 System/Template/Base Note.md'\r\n\u001b[39;2m └ ---\r\n\u001b[0m \u001b[2mstatus: seed\r\n … +4 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mtitle:\r\n\u001b[0m \u001b[2m---\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"Capistrano|deploy|деплой|МИАД|нечет|иерарх|дискриминант|кластер|фактор\"\u001b[38;2;205;214;244m INDEX.md\r\n\u001b[39;2m └ 17 matches in 1F:\r\n\r\n … +17 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 375: | `90 Library/Math/Теория нечетких множеств/Функция принадлежности.md` | Функ...\r\n\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m INDEX.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdftotext\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mf\u001b[38;2;205;214;244m 1\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172ml\u001b[38;2;205;214;244m 2\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mlayout\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'00 Inbox/МИАД_Л1.pdf'\u001b[38;2;205;214;244m -\r\n\u001b[39;2m └ Математические методы в задачах финансового\r\n\u001b[0m \u001b[2mмониторинга\r\n … +19 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 2\r\n\u001b[0m \r\n\r\n \u001b[2mмониторинга\r\n … +18 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 2\r\n\u001b[0m \r\n\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdftotext\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mf\u001b[38;2;205;214;244m 1\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172ml\u001b[38;2;205;214;244m 2\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mlayout\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'00 Inbox/МИАД_Л2.pdf'\u001b[38;2;205;214;244m -\r\n\u001b[39;2m └ Математические методы в задачах финансового\r\n\u001b[0m \u001b[2mмониторинга\r\n … +16 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 2\r\n\u001b[0m \r\n\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdftotext\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mf\u001b[38;2;205;214;244m 1\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172ml\u001b[38;2;205;214;244m 2\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mlayout\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'00 Inbox/МИАД_Л3_нечеткий_вывод.pdf'\u001b[38;2;205;214;244m -\r\n\u001b[39;2m └ Математические методы в задачах финансового\r\n\u001b[0m \u001b[2mмониторинга\r\n … +14 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 2\r\n\u001b[0m \r\n\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mSearch\u001b[0m *.md\u001b[2m in \u001b[0mMath\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"Capistrano|Puma|puma:install|sudoers|Solid Queue|Sidekiq|deploy\"\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'90 Library'\u001b[38;2;205;214;244m INDEX.md\r\n\u001b[39;2m └ 9 matches in 4F:\r\n\r\n … +15 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 428: | `90 Library/Programming/Ruby On Rails/Sidekiq - основа работы.md` | Sidekiq...\r\n └ 7F 2D:\r\n\r\n\u001b[0m \u001b[2m./ Ruby - массивы.md Ruby - основы языка.md\r\n\u001b[0m \u001b[2mRuby On Rails/ API импорт в Rails через runner.md Active Storage.md Rails credentials edit не открывает\r\n\u001b[0m \u001b[2mредактор.md Ruby On Rails.md Sidekiq - основа работы.md\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdftotext\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mf\u001b[38;2;205;214;244m 1\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172ml\u001b[38;2;205;214;244m 8\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mlayout\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'00 Inbox/МИАД_Л4_иерархии.pdf'\u001b[38;2;205;214;244m -\r\n\u001b[39;2m └ Математические методы в задачах финансового\r\n\u001b[0m \u001b[2mмониторинга\r\n … +88 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 8\r\n\u001b[0m \r\n\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdftotext\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mf\u001b[38;2;205;214;244m 1\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172ml\u001b[38;2;205;214;244m 8\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mlayout\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'00 Inbox/МИАД_Л1.pdf'\u001b[38;2;205;214;244m -\r\n\u001b[39;2m └ Математические методы в задачах финансового\r\n\u001b[0m \u001b[2mмониторинга\r\n … +101 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 8\r\n\u001b[0m \r\n\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m Sidekiq - основа работы.md\u001b[2m, \u001b[0mRuby On Rails.md\u001b[2m, \u001b[0mТеория нечетких множеств.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdftotext\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mf\u001b[38;2;205;214;244m 1\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172ml\u001b[38;2;205;214;244m 6\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mlayout\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'00 Inbox/МИАД_Л2.pdf'\u001b[38;2;205;214;244m -\r\n\u001b[39;2m └ Математические методы в задачах финансового\r\n\u001b[0m \u001b[2mмониторинга\r\n … +61 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mиспользуем 𝑥𝑅𝑦 или (𝑥, 𝑦) ∈ 𝑅. 6\r\n\u001b[0m \r\n\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdftotext\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mf\u001b[38;2;205;214;244m 1\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172ml\u001b[38;2;205;214;244m 6\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mlayout\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'00 Inbox/МИАД_Л3_нечеткий_вывод.pdf'\u001b[38;2;205;214;244m -\r\n\u001b[39;2m └ Математические методы в задачах финансового\r\n\u001b[0m \u001b[2mмониторинга\r\n … +58 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 6\r\n\u001b[0m \r\n\r\n\r\n\u001b[2m─────────────────────────────────────────────────────────────────────────────────────────────────────────────\r\n\r\n• \u001b[0mПлан ingest, без правок пока:\r\n\r\n \u001b[94m1. \u001b[36m00 Inbox/Команды для деплоя с помощью Capistrano.md\r\n\u001b[0m - Шаблон: \u001b[36mBase Note.md\r\n\u001b[0m - Куда: \u001b[36m90 Library/Programming/Ruby On Rails/Capistrano deploy через systemd.md\r\n\u001b[0m - Связи: \u001b[36m[[Ruby On Rails]]\u001b[0m, \u001b[36m[[Sidekiq - основа работы]]\r\n\u001b[0m - Источник после обработки: \u001b[36m99 System/Archive/\r\n\u001b[0m \u001b[94m2. \u001b[36m00 Inbox/МИАД_Л1.pdf\r\n\u001b[0m - Не создавать дубль: тема уже частично покрыта в \u001b[36m90 Library/Math/Теория нечетких множеств/\r\n\u001b[0m - Дополнить существующие заметки про нечёткое множество, функцию принадлежности, логические операции\r\n - Связи: \u001b[36m[[Теория Нечетких Множеств]]\u001b[0m, \u001b[36m[[Функция принадлежности]]\u001b[0m, \u001b[36m[[Определение нечеткого множества]]\r\n\u001b[0m \u001b[94m3. \u001b[36m00 Inbox/МИАД_Л2.pdf\r\n\u001b[0m - Создать: \u001b[36m90 Library/Math/Теория нечетких множеств/Нечеткие отношения.md\r\n\u001b[0m \u001b[94m4. \u001b[36m00 Inbox/МИАД_Л3_нечеткий_вывод.pdf\r\n\u001b[0m - Создать: \u001b[36m90 Library/Math/Теория нечетких множеств/Нечеткий вывод.md\r\n\u001b[0m - Шаблон: \u001b[36mBase Note.md\r\n\u001b[0m - Связи: \u001b[36m[[Теория Нечетких Множеств]]\u001b[0m, \u001b[36m[[Лингвистическая переменная]]\u001b[0m если будет создана как отдельная\r\n заметка; иначе без неё\r\n \u001b[94m5. \u001b[36m00 Inbox/МИАД_Л4_иерархии.pdf\r\n\u001b[0m После подтверждения:\r\n\r\n - обработаю источники;\r\n - перемещу исходники в \u001b[36m99 System/Archive/\u001b[0m;\r\n - добавлю \u001b[36msource\u001b[0m в frontmatter;\r\n - обновлю \u001b[36mINDEX.md\u001b[0m.\r\n\r\n Подтверди: выполнять этот план?\r\n\r\n\u001b[2m─ Worked for 1m 18s ─────────────────────────────────────────────────────────────────────────────────────────\r\n\r\n\u001b[48;5;239;22m\u001b[109X\r\n\u001b[1;2m \u001b[22;22mДелай\r\n\r\n\u001b[0m\u001b[109X\r\n\u001b[2m• \u001b[0mПринял. Сначала извлеку текст из PDF во временные файлы и дочитаю релевантные куски, потом внесу точечные\r\n правки и обновлю индекс.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mmkdir\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mp\u001b[38;2;205;214;244m /tmp/secondbrain-ingest\r\n\u001b[39;2m └ (no output)\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m Определение нечеткого множества.md\u001b[2m, \u001b[0mФункция принадлежности.md\u001b[2m, \u001b[0mЛогические операции над нечеткими\r\n множествами.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'99 System'\r\n\u001b[39;2m └ Archive/\r\n\u001b[0m \u001b[2mCache/\r\n\u001b[0m \u001b[2mTemplate/\r\n\r\n─────────────────────────────────────────────────────────────────────────────────────────────────────────────\r\n\r\n• \u001b[0mПо содержанию видно, что Л1 пересекается с уже существующими заметками; там достаточно дозаполнить \u001b[36msource\u001b[0m и\r\n пару недостающих тезисов, а новые отдельные заметки нужны для отношений, вывода и МАИ.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdftotext\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mlayout\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'00 Inbox/МИАД_Л2.pdf'\u001b[38;2;205;214;244m /tmp/secondbrain-ingest/miad_l2.txt\r\n\u001b[39;2m └ (no output)\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdftotext\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mlayout\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'00 Inbox/МИАД_Л1.pdf'\u001b[38;2;205;214;244m /tmp/secondbrain-ingest/miad_l1.txt\r\n\u001b[39;2m └ (no output)\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdftotext\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mlayout\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'00 Inbox/МИАД_Л3_нечеткий_вывод.pdf'\u001b[38;2;205;214;244m /tmp/secondbrain-ingest/miad_l3.txt\r\n\u001b[39;2m └ (no output)\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdftotext\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mlayout\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'00 Inbox/МИАД_Л4_иерархии.pdf'\u001b[38;2;205;214;244m /tmp/secondbrain-ingest/miad_l4.txt\r\n\u001b[39;2m └ (no output)\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"Содержание|Этап|парн|Саати|приоритет|согласован|индекс|альтернатив|матриц|собствен\"\u001b[38;2;205;214;244m /tmp/\r\n\u001b[39;2m │ \u001b[38;2;205;214;244;22msecondbrain-ingest/miad_l4.txt\r\n\u001b[39;2m └ 110 matches in 18F:\r\n\r\n … +78 lines (ctrl + t to view transcript)\r\n\r\n\u001b[0m \u001b[2m... +68\r\n └ 23 matches in 2F:\r\n\r\n … +25 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 0:\r\n\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"Содержание|Терминология|Алгебраические|оператор|преимуществ|Недостатки|Теорема|прям|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mкосвен\"\u001b[38;2;205;214;244m /tmp/secondbrain-ingest/miad_l1.txt\r\n\u001b[39;2m └ 38 matches in 4F:\r\n\r\n … +36 lines (ctrl + t to view transcript)\r\n\r\n\u001b[0m \u001b[2m... +10\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"Содержание|Лингвист|нечетк.*перем|продукц|Мамдани|Сугено|этап|дефаз|фаз|импликац|вывод\"\u001b[38;2;205;214;244m /\r\n\u001b[39;2m │ \u001b[38;2;205;214;244;22mtmp/secondbrain-ingest/miad_l3.txt\r\n\u001b[39;2m └ 66 matches in 4F:\r\n\r\n … +36 lines (ctrl + t to view transcript)\r\n\r\n\u001b[0m \u001b[2m... +38\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m miad_l1.txt\u001b[2m, \u001b[0mmiad_l4.txt\u001b[2m, \u001b[0mmiad_l2.txt\u001b[2m, \u001b[0mmiad_l3.txt\r\n\r\n\u001b[2m─────────────────────────────────────────────────────────────────────────────────────────────────────────────\r\n\r\n• \u001b[0mСейчас внесу изменения: создам 4 новые заметки, дозаполню 3 существующие по Л1, добавлю новые ссылки в MOC\r\n и Rails MOC. Затем перемещу источники и пересоберу \u001b[36mINDEX.md\u001b[0m.\r\n\r\n•\u001b[1C\u001b[1mW\u001b[0mo\u001b[2mrking\u001b[1C(1m 22s • esc to interrupt)\r\n\r\n\u001b[48;5;239;22m \u001b[108X\r\n\u001b[1m\u001b[22m \u001b[2mFind and fix a bug in @filename\r\n\u001b[22m \r\n\u001b[0m\u001b[2X\u001b[2C\u001b[38;2;246;226;183mgpt-5.5 high\u001b[39;2m · \u001b[38;2;171;223;167;22m~/Documents/Vaults/SecondBrain\u001b[62X\u001b[2A\u001b[45D\u001b[0m",
"rows": 31,
"scrollLine": -1
}
}
},
"pinned": true,
"icon": "terminal",
"title": "Terminal: ⠧ SecondBrain"
}
},
{
"id": "df1bd513cd92a47d",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "AGENTS.md",
"mode": "preview",
"source": false,
"backlinks": false
},
"icon": "lucide-file",
"title": "AGENTS"
}
},
{
"id": "1040e2dbdf162887",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "AGENTS.md",
"mode": "source",
"source": false,
"backlinks": false
},
"icon": "lucide-file",
"title": "AGENTS"
}
},
{
"id": "9400008114670d00",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "90 Library/HomeLab/Infrastructure — ada-dev.md",
"mode": "preview",
"source": false,
"backlinks": false
},
"icon": "lucide-file",
"title": "Infrastructure — ada-dev"
}
},
{
"id": "6c2844bb20623fd4",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "AGENTS.md",
"mode": "preview",
"source": false,
"backlinks": false
},
"icon": "lucide-file",
"title": "AGENTS"
}
},
{
"id": "98b697a77d37adeb",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "AGENTS.md",
"mode": "preview",
"source": false,
"backlinks": false
},
"icon": "lucide-file",
"title": "AGENTS"
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "a9c2d5e65288011a",
"type": "split",
"children": [
{
"id": "383cca303cf4b57d",
"type": "tabs",
"children": [
{
"id": "27e6486165131cfa",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": true
},
"icon": "lucide-folder-closed",
"title": "Files"
}
},
{
"id": "66079465678173e5",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "tag:#gym",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
},
{
"id": "c2541ce190da912e",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
},
{
"id": "673ce6e6c09cfc9c",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-tags",
"title": "Tags"
}
}
]
}
],
"direction": "horizontal",
"width": 242.5
},
"right": {
"id": "38c591aa0966839e",
"type": "split",
"children": [
{
"id": "86a193b1d3159ff8",
"type": "tabs",
"dimension": 44.97282608695652,
"children": [
{
"id": "753db948dab04823",
"type": "leaf",
"pinned": true,
"state": {
"type": "calendar",
"state": {},
"pinned": true,
"icon": "lucide-ghost",
"title": "calendar"
}
},
{
"id": "394fb6e28d09b8f3",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency",
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-archive",
"title": "All properties"
}
},
{
"id": "e51be669e29cd994",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "03 Journal/2026/03 - March/31.03.26 - Tuesday.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Backlinks for 31.03.26 - Tuesday"
}
},
{
"id": "86ea4ddeaafff092",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "90 Library/02 DevOps/Контейнеризация/Docker/Docker - Дополнительные знания.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links from Docker - Дополнительные знания"
}
},
{
"id": "a0ffd3bace615787",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "90 Library/11 Machine Learning/Обратное распространение ошибки.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "Outline of Обратное распространение ошибки"
}
},
{
"id": "d0b123940c0cc598",
"type": "leaf",
"state": {
"type": "file-properties",
"state": {
"file": "00 Inbox/Git.md"
},
"icon": "lucide-info",
"title": "File properties for Git"
}
},
{
"id": "de69f2d686f1c18c",
"type": "leaf",
"state": {
"type": "excalidraw-sidepanel",
"state": {},
"icon": "excalidraw-icon",
"title": "Excalidraw Sidepanel"
}
}
],
"currentTab": 6
},
{
"id": "953ae0f10eedfdc6",
"type": "tabs",
"dimension": 55.02717391304348,
"children": [
{
"id": "294b81fcbc79c560",
"type": "leaf",
"pinned": true,
"state": {
"type": "graph",
"state": {},
"pinned": true,
"icon": "lucide-git-fork",
"title": "Graph view"
}
},
{
"id": "ecfba1f8b8cc0897",
"type": "leaf",
"state": {
"type": "git-view",
"state": {},
"icon": "git-pull-request",
"title": "Source Control"
}
}
],
"currentTab": 1
}
],
"direction": "horizontal",
"width": 261.5,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"switcher:Open quick switcher": false,
"graph:Open graph view": false,
"canvas:Create new canvas": false,
"daily-notes:Open today's daily note": false,
"templates:Insert template": false,
"command-palette:Open command palette": false,
"markdown-importer:Open format converter": false,
"random-note:Open random note": false,
"audio-recorder:Start/stop recording": false,
"bases:Create new base": false,
"omnisearch:Omnisearch": false,
"templater-obsidian:Templater": false,
"obsidian-git:Open Git source control": false,
"obsidian-excalidraw-plugin:New drawing": false,
"terminal:Open terminal": false
}
},
"active": "44e5aceda7b172df",
"lastOpenFiles": [
"AGENTS.md",
"00 Inbox/МИАД_Л1.pdf",
"00 Inbox/МИАД_Л2.pdf",
"00 Inbox/МИАД_Л3_нечеткий_вывод.pdf",
"00 Inbox/МИАД_Л4_иерархии.pdf",
"90 Library/Programming/Ruby - основы языка.md",
"90 Library/Programming/Ruby - массивы.md",
"99 System/Archive/В случае ошибок на принтере Kyocera FS-1020MFP.md",
"99 System/Archive/Итераторы для обработки массивов Ruby.md",
"99 System/Archive/Знания Ruby.md",
"90 Library/Other/Kyocera FS-1020MFP — ошибки.md",
"00 Inbox/Знания Ruby.md",
"00 Inbox/Итераторы для обработки массивов Ruby.md",
"99 System/Cache/Pasted image 20260526204029.png",
"99 System/Cache/Pasted image 20260526203848.png",
"99 System/Cache/Pasted image 20260526203807.png",
"99 System/Archive/Работа с API для проекта Attendance Mephi.md",
"90 Library/Programming/Ruby On Rails/API импорт в Rails через runner.md",
"90 Library/HomeLab/Infrastructure — ada-dev.md",
"00 Inbox/Работа с API для проекта Attendance Mephi.md",
"INDEX.md",
"00 Inbox/Hello.md",
"00 Inbox/Подготовка Speaking.md",
"99 System/Archive/Подготовка Speaking.md",
"99 System/Archive/Налоги - СР2.md",
"99 System/Archive/Налоги - Организационные моменты.md",
"99 System/Archive/РИАС - база.md",
"99 System/Archive/31, 32 - Налоги 1.md",
"99 System/Archive/OSINT - Зачет.md",
"00 Inbox/Подготовка Speaking.sync-conflict-20260522-220847-23DMR5O.md",
"00 Inbox/Подготовка Speaking.sync-conflict-20260522-185359-23DMR5O.md",
"00 Inbox/Подготовка Speaking.sync-conflict-20260522-215348-23DMR5O.md",
"99 System/Cache/Pasted image 20260521134256.png",
"99 System/Cache/Pasted image 20260521134238.png",
"99 System/Cache/Pasted image 20260521134228.png",
"99 System/Cache/Pasted image 20260521134207.png",
"99 System/Cache/Pasted image 20260521133832.png",
"99 System/Cache/Pasted image 20260521133824.png",
"99 System/Cache/Pasted image 20260521133344.png",
"raw_files_3.txt",
"raw_links_3.txt",
"raw_links_2.txt",
"raw_links.txt",
"all_links.tmp",
"all_links.txt",
"00 Inbox/Untitled.canvas"
]
}