From c334cee3d8ea70f96f4fe82d6769862acf869fe1 Mon Sep 17 00:00:00 2001 From: Struchkov Mark Date: Sun, 24 Nov 2024 12:47:47 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dev/efficiency/TechTalk.md | 42 +++++++++++ dev/efficiency/Рефакторинг кода.md | 5 +- dev/java/ResultSet.md | 70 +++++++++++++++++++ dev/linux/Диагностика Linux.md | 62 ++++++++++++++++ .../Проверка свободного места на дисках.md | 45 ++++++++++++ education/knowledgebase/Obsidian.md | 26 +++++++ ...ем поиск Omnisearch по базе знаний в поисковик.md | 31 ++++++++ meta/zero/00 Linux.md | 3 +- meta/zero/00 База знаний.md | 9 +++ meta/zero/00 Реляционная база данных.md | 1 + muesli/Исторически так сложилось.md | 4 +- muesli/Контрасты Цивилизации.md | 25 +++++++ ...иентированное программирование в современном мире.md | 2 +- 13 files changed, 319 insertions(+), 6 deletions(-) create mode 100644 dev/efficiency/TechTalk.md create mode 100644 dev/java/ResultSet.md create mode 100644 dev/linux/Диагностика Linux.md create mode 100644 dev/linux/Проверка свободного места на дисках.md create mode 100644 education/knowledgebase/Obsidian.md create mode 100644 education/knowledgebase/Встраиваем поиск Omnisearch по базе знаний в поисковик.md create mode 100644 meta/zero/00 База знаний.md create mode 100644 muesli/Контрасты Цивилизации.md diff --git a/dev/efficiency/TechTalk.md b/dev/efficiency/TechTalk.md new file mode 100644 index 00000000..732a961f --- /dev/null +++ b/dev/efficiency/TechTalk.md @@ -0,0 +1,42 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-24 +--- +TechTalk — это особенный формат общения для технических специалистов. Здесь можно не только обменяться знаниями и опытом, но и обсудить актуальные тенденции, новые технологии и подходы. + +TechTalk может быть как внутренним мероприятием в компании, так и публичным событием, доступным для широкой аудитории. + +- **Внутренние TechTalks**: Отличная возможность для команды делиться своими наработками, исследовать новые технологии и находить свежие идеи для решений задач. Это также способствует развитию корпоративной культуры и укреплению связей между сотрудниками. +- **Публичные TechTalks**: Открывают доступ к опыту ведущих экспертов отрасли, позволяя участникам узнать о лучших практиках и наработках, а также вдохновиться чужими успехами. Это также хороший способ для компаний заявить о себе на рынке. + +**Преимущества TechTalk** +1. **Обмен опытом и знаниями**: Главная ценность TechTalk заключается в обмене опытом и знаниями. ==Участники делятся не только успехами, но и неудачами==, что помогает другим избегать подобных ошибок в своих проектах. +2. **Интерактивное взаимодействие**: В отличие от стандартных докладов на конференциях, TechTalks более интерактивны и предполагают обсуждение и вопросы, что помогает углубляться в детали и находить новые точки зрения на уже знакомые темы. +3. **Профессиональное развитие**: Такие мероприятия позволяют развивать навыки публичных выступлений, улучшать коммуникативные навыки и становиться более уверенным в своих знаниях. +4. **Культура открытости**: Создание атмосферы, где каждый может свободно поделиться своими идеями и обсудить волнующие вопросы, способствует развитию культуры открытости и инноваций в компании. + +**Недостатки TechTalk** +1. **Требует времени и подготовки**: Организация и проведение TechTalk требует значительных временных и организационных затрат. Нужно подготовить материалы, организовать пространство и время для мероприятия. +2. **Не все участники готовы выступать**: Не всем специалистам комфортно выступать перед аудиторией, что может создавать препятствия для обмена знаниями. +3. **Перегруз информацией**: Иногда в рамках TechTalk может быть представлено слишком много информации, что затрудняет усвоение материала, особенно если тематика сложная или новая для участников. + +**Как организовать успешный TechTalk** +1. **Определение темы**: Тема должна быть актуальной и интересной для аудитории. Лучше всего выбирать темы, которые позволяют участникам делиться практическим опытом. +2. **Подготовка спикеров**: Спикерам нужно заранее помочь в подготовке материалов и презентации. Это может включать репетиции и предоставление обратной связи. +3. **Интерактивный формат**: Включайте вопросы и обсуждения, чтобы аудитория могла активно участвовать в процессе. Это делает мероприятие более живым и полезным для всех участников. +4. **Продолжительность**: Не затягивайте мероприятие. Оптимальная продолжительность TechTalk — 30-60 минут, чтобы участники не теряли интерес и могли усвоить представленный материал. +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Эффективная разработка|00 Эффективная разработка]] +**Родитель**:: +**Источник**:: +**Создана**:: [[2024-11-24]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + diff --git a/dev/efficiency/Рефакторинг кода.md b/dev/efficiency/Рефакторинг кода.md index b231940d..12b76af3 100644 --- a/dev/efficiency/Рефакторинг кода.md +++ b/dev/efficiency/Рефакторинг кода.md @@ -1,12 +1,13 @@ --- -aliases: +aliases: + - рефакторинг tags: - maturity/🌱 date: 2024-11-24 --- Рефакторинг — это процесс улучшения существующего кода **без изменения его функциональности**. -Регулярный рефакторинг помогает избавиться от неудачных решений, которые усложняют понимание системы. Устраняя технический долг, команда уменьшает количество контекста, который необходимо удерживать в голове, и делает код понятнее. +Регулярный рефакторинг помогает избавиться от неудачных решений ([[../../muesli/Исторически так сложилось|Исторически так сложилось]]), которые усложняют понимание системы. Устраняя технический долг, команда уменьшает количество контекста, который необходимо удерживать в голове, и делает код понятнее. *** ## Мета информация **Область**:: [[../../meta/zero/00 Эффективная разработка|00 Эффективная разработка]] diff --git a/dev/java/ResultSet.md b/dev/java/ResultSet.md new file mode 100644 index 00000000..44395567 --- /dev/null +++ b/dev/java/ResultSet.md @@ -0,0 +1,70 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-24 +--- +`ResultSet` — это интерфейс, используемый для хранения и управления результатами SQL-запроса типа SELECT к базе данных. Он позволяет Java-программе извлекать и обрабатывать данные, возвращаемые запросом. + +- **Получение данных**: при выполнении запроса SELECT база данных возвращает данные в виде таблицы. `ResultSet` предоставляет доступ к этим данным в Java-коде. +- **Обработка данных**: интерфейс включает методы для навигации по строкам и извлечения значений из текущей строки. +- **Управление данными**: `ResultSet` также позволяет перемещать курсор по строкам данных и получать доступ к столбцам по имени или индексу. + +Создание и выполнение запроса + ```java + Statement stmt = connection.createStatement(); + ResultSet rs = stmt.executeQuery("SELECT * FROM employees"); + ``` + +Обработка данных + ```java + while (rs.next()) { + int id = rs.getInt("id"); + String name = rs.getString("name"); + double salary = rs.getDouble("salary"); + System.out.println("ID: " + id + ", Name: " + name + ", Salary: " + salary); + } + ``` +## Основные методы +Эти методы являются ключевыми для работы с объектом `ResultSet`, позволяя эффективно взаимодействовать с базой данных: + +`next()` — перемещает курсор к следующей строке. + + ```java + rs.next(); + ``` + +`getInt()`, `getString()`, `getDouble()` и другие get-методы — извлекают данные из текущей строки. + + ```java + int id = rs.getInt("id"); + String name = rs.getString("name"); + double salary = rs.getDouble("salary"); + ``` + +`close()` — закрывает ResultSet и освобождает связанные с ним ресурсы. + + ```java + rs.close(); + ``` + +`getMetaData()` — возвращает объект `ResultSetMetaData`, содержащий метаданные о результирующем наборе данных, такие как количество столбцов и их типы. + + ```java + ResultSetMetaData metaData = rs.getMetaData(); + int columnCount = metaData.getColumnCount(); + ``` + +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Java разработка|00 Java разработка]] +**Родитель**:: [[../../../../knowledge/dev/java/other/Java Database Connectivity|Java Database Connectivity]] +**Источник**:: +**Создана**:: [[2024-11-24]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + diff --git a/dev/linux/Диагностика Linux.md b/dev/linux/Диагностика Linux.md new file mode 100644 index 00000000..bf850298 --- /dev/null +++ b/dev/linux/Диагностика Linux.md @@ -0,0 +1,62 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-24 +--- +Linux предоставляет широкий спектр утилит для мониторинга системы, отладки и устранения неисправностей. Эти инструменты могут помочь в диагностике проблем с процессами, памятью, сетью и другими аспектами системы. Рассмотрим основные категории утилит, которые часто используются для отладки. + +- [[Проверка свободного места на дисках]] +## Мониторинг процессов и системы +- **top** и **htop**: отображают информацию о текущем использовании системных ресурсов в реальном времени, включая процессы, загрузку ЦП и память. +- **ps aux**: выводит список всех запущенных процессов с подробной информацией. +- **lsof**: отображает открытые файлы и процессы, которые их используют. +- **strace** и **ltrace**: позволяют отслеживать системные вызовы и сигналы для процесса. +- **vmstat**: предоставляет информацию о виртуальной памяти и процессах. +- **iostat**: выводит статистику ввода/вывода по устройствам. +## Отладка аварийных завершений и дампов памяти +- **dmesg**: выводит сообщения из буфера ядра, полезно для диагностики аппаратных проблем. +- **journalctl**: позволяет просматривать системные логи, включая сообщения ядра и системных служб. +- **gdb**: отладчик, позволяющий анализировать дампы памяти и выполнять отладку приложений. +## Сетевая отладка +- **ping** и [[../../../../knowledge/dev/network/Анализ маршрута до интернет ресурса|traceroute]]: позволяют проверять доступность хостов и отслеживать маршрут до них. +- **mtr**: комбинирует возможности ping и [[../../../../knowledge/dev/network/Анализ маршрута до интернет ресурса|traceroute]] для непрерывной диагностики сети. +- **netstat** (или **ss**): выводит информацию об открытых портах и активных соединениях. +- **tcpdump**: захватывает и отображает сетевые пакеты для анализа. +- **nmap**: инструмент для сканирования сети и оценки безопасности. +- **ip addr show**: отображает все сетевые интерфейсы и их IP-адреса. +## Отладка файлов и дисков +- **fsck**: проверяет и исправляет ошибки файловой системы. +- [[Диагностика HDD c использованием S.M.A.R.T.|smartctl]]: выводит информацию о состоянии жестких дисков, используя данные S.M.A.R.T. +- **badblocks**: ищет поврежденные блоки на диске. +- **df** и [[Проверка свободного места на дисках|du]]: отображают информацию о дисковом пространстве в системе. +- **lsblk**: выводит информацию об устройствах хранения и их разделах. +- **mount** и **umount**: позволяют подключать и отключать файловые системы. +## Мониторинг системных ресурсов +- **sar**: собирает и сохраняет информацию о системной активности. +- **free**: выводит информацию о доступной и использованной памяти. +- **iostat** и **mpstat**: показывают статистику ввода/вывода и процессорной активности. +- **pidstat**: предоставляет статистику по процессам. +## Отладка ядра и модулей +- **uname**: выводит информацию о ядре и версии операционной системы. +- **lsmod**: отображает загруженные модули ядра. +- **modinfo**: выводит подробную информацию о модулях ядра. +- **dmesg | grep \**: помогает находить сообщения ядра, связанные с определенным модулем. + + +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Linux|00 Linux]] +**Родитель**:: +**Источник**:: +**Создана**:: [[2024-11-24]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + +- [[Проверка свободного места на дисках]] + + diff --git a/dev/linux/Проверка свободного места на дисках.md b/dev/linux/Проверка свободного места на дисках.md new file mode 100644 index 00000000..df934fb1 --- /dev/null +++ b/dev/linux/Проверка свободного места на дисках.md @@ -0,0 +1,45 @@ +--- +aliases: [] +tags: + - maturity/🌱 +date: + - - 2024-08-21 +--- +Посмотреть общее свободно дисковое место в системе +```shell +df -h +``` +## Поиск больших директорий +Чтобы найти, какие директории занимают больше всего места, используйте команду `du`: +```bash +du -h --max-depth=1 / | sort -hr | head -n 20 +``` + +Эта команда просканирует корневой каталог `/`, подсчитает размер всех подкаталогов (глубина сканирования ограничена одним уровнем с помощью `--max-depth=1`), отсортирует их по убыванию размера (`sort -hr`), и выведет 20 самых больших директорий. + +Если хотите просканировать определенный каталог (например, домашний каталог), замените `/` на путь к этому каталогу: +```bash +du -h --max-depth=1 /home | sort -hr | head -n 20 +``` + +После определения самой большой директории нужно проанализировать уже ее и так далее. + +В анализе может помочь [Структура хранения файлов в Linux](Структура%20хранения%20файлов%20в%20Linux.md) +## Поиск больших файлов +Чтобы найти самые большие файлы на сервере, используйте команду `find`: +``` +sudo find / -type f -exec du -h {} + | sort -rh | head -n 20 +``` + +Эта команда найдет все файлы на сервере, подсчитает их размер, отсортирует по убыванию размера и выведет 20 самых больших файлов. +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Linux|00 Linux]] +**Родитель**:: [[Диагностика Linux]] +**Источник**:: +**Автор**:: +**Создана**:: [[2024-08-21]] +### Дополнительные материалы +- +### Дочерние заметки + diff --git a/education/knowledgebase/Obsidian.md b/education/knowledgebase/Obsidian.md new file mode 100644 index 00000000..42a2527d --- /dev/null +++ b/education/knowledgebase/Obsidian.md @@ -0,0 +1,26 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-24 +--- +## Полезные трюки +- [[Встраиваем поиск Omnisearch по базе знаний в поисковик]] +## Обучающие материалы для новичков +- [Настройка obsidian с нуля. Все функции.](https://m.vk.com/video-211759547_456239067) +*** +## Мета информация +**Область**:: [[../../meta/zero/00 База знаний|00 База знаний]] +**Родитель**:: +**Источник**:: +**Создана**:: [[2024-11-24]] +**Автор**:: +### Дополнительные материалы +- [Управление личными делами в Obsidian (прототип) / Habr](https://habr.com/en/articles/833654/) + +### Дочерние заметки + + +- [[Встраиваем поиск Omnisearch по базе знаний в поисковик]] + + diff --git a/education/knowledgebase/Встраиваем поиск Omnisearch по базе знаний в поисковик.md b/education/knowledgebase/Встраиваем поиск Omnisearch по базе знаний в поисковик.md new file mode 100644 index 00000000..cbc74821 --- /dev/null +++ b/education/knowledgebase/Встраиваем поиск Omnisearch по базе знаний в поисковик.md @@ -0,0 +1,31 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-24 +--- +Т.е. мы что-то ищем в сети, и одновременно видим на этом же экране все релевантные заметки из нашей локальной базы знаний. Такое можно вполне организовать и в Obsidian. + +Алгоритм активации этой функции: +- Установите последнюю версию Omnisearch +- Активируйте опцию Enable HTTP Server, порт оставьте по умолчанию 51361 +- Установите [Tampermonkey](https://www.tampermonkey.net/) или любой другой менеджер пользовательских скриптов. Плагин нужно устанавливать в режиме разработчика, иначе работать не будет.  +- Установите скрипт под ваш поисковик: + - [Kagi](https://github.com/scambier/userscripts/raw/master/dist/obsidian-omnisearch-kagi.user.js) + - [Google](https://github.com/scambier/userscripts/raw/master/dist/obsidian-omnisearch-google.user.js) + - [DuckDuckGo](https://github.com/scambier/userscripts/raw/master/dist/obsidian-omnisearch-ddg.user.js) + - [Bing](https://github.com/scambier/userscripts/raw/master/dist/obsidian-omnisearch-bing.user.js) + +*** +## Мета информация +**Область**:: [[../../meta/zero/00 База знаний|00 База знаний]] +**Родитель**:: [[Obsidian]] +**Источник**:: +**Создана**:: [[2024-11-24]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + diff --git a/meta/zero/00 Linux.md b/meta/zero/00 Linux.md index 92ee2734..a339ea8d 100644 --- a/meta/zero/00 Linux.md +++ b/meta/zero/00 Linux.md @@ -5,7 +5,8 @@ zero-link: - "[[00 Разработка]]" --- - [Структура хранения файлов в Linux](Структура%20хранения%20файлов%20в%20Linux.md) -- [Проверка свободного места на дисках](Проверка%20свободного%20места%20на%20дисках.md) +- [[../../dev/linux/Диагностика Linux|Диагностика Linux]] + - [Проверка свободного места на дисках](../../dev/linux/Проверка%20свободного%20места%20на%20дисках.md) CentOS: - [Настройка прокси на CentOS 7 и 8](../../dev/linux/centos/Настройка%20прокси%20на%20CentOS%207%20и%208.md) diff --git a/meta/zero/00 База знаний.md b/meta/zero/00 База знаний.md new file mode 100644 index 00000000..946f854f --- /dev/null +++ b/meta/zero/00 База знаний.md @@ -0,0 +1,9 @@ +--- +aliases: +tags: + - type/zero-link +date: + - - 2023-12-17 +--- +## Полезные материал +- [Rethinking my PKM part 5: How do you organize your notes? - YouTube](https://www.youtube.com/watch?v=AtdAAD47aQY). Автор рассказывает какие бывают структуры личных баз знаний. Какие структуры связей можно выстраивать в заметках. \ No newline at end of file diff --git a/meta/zero/00 Реляционная база данных.md b/meta/zero/00 Реляционная база данных.md index 79c0f3db..acbe76a6 100644 --- a/meta/zero/00 Реляционная база данных.md +++ b/meta/zero/00 Реляционная база данных.md @@ -8,6 +8,7 @@ aliases: - база данных - базу данных - Реляционная база данных + - базами данных linked: - "[[../../../../_inbox/00 In-memory СуБД|00 In-memory СуБД]]" --- diff --git a/muesli/Исторически так сложилось.md b/muesli/Исторически так сложилось.md index 5e46b64f..12635d29 100644 --- a/muesli/Исторически так сложилось.md +++ b/muesli/Исторически так сложилось.md @@ -24,9 +24,9 @@ date: 2024-11-12 **Как бороться с наследием прошлого** 1. **Документировать решения**: Поддержка документации помогает понимать, почему определённое решение было принято, и облегчает пересмотр устаревших подходов. Например, Architecture decision log -2. **Регулярные ревизии кода**: Периодически пересматривайте старый код, чтобы выявлять и устранять неэффективные решения. +2. [[../dev/efficiency/Рефакторинг кода|Рефакторинг кода]]: Периодически пересматривайте старый код, чтобы выявлять и устранять неэффективные решения. 3. **Постоянное обучение команды**: Обучение помогает разработчикам понимать современные подходы и технологии, что позволяет быстрее определять устаревшие паттерны. -4. **Открытые обсуждения**: Создайте культуру, где команда может открыто задавать вопросы о текущих решениях и предлагать улучшения. Например TechTalk +4. [[../dev/efficiency/TechTalk|TechTalk]]: Создайте культуру, где команда может открыто задавать вопросы о текущих решениях и предлагать улучшения. *** ## Мета информация **Область**:: [[../meta/zero/00 Головные мюсли|00 Головные мюсли]], [[../meta/zero/00 Разработка|00 Разработка]] diff --git a/muesli/Контрасты Цивилизации.md b/muesli/Контрасты Цивилизации.md new file mode 100644 index 00000000..fbd9c84f --- /dev/null +++ b/muesli/Контрасты Цивилизации.md @@ -0,0 +1,25 @@ +--- +aliases: +tags: + - maturity/🌱 + - content/muesli +date: 2024-11-24 +--- +Мы, как человеческий вид, достигли удивительных высот. Мы научились летать в космос, создавать межпланетные аппараты и возвращать ракеты обратно на стартовую площадку. Мы стоим на пороге освоения других планет, уже обсуждая возможности поселений на Марсе и путешествий за пределы нашей Солнечной системы. Эти достижения впечатляют своей масштабностью и инженерным искусством. Они символизируют невероятный прогресс, которого мы достигли за какие-то несколько сотен лет, начиная с того момента, когда человек впервые понял, как использовать огонь или колесо. + +Но вместе с тем, на нашей планете по-прежнему есть люди, живущие так, как жили их предки тысячи лет назад. Изолированные племена, которые никогда не имели контакта с современной цивилизацией, продолжают жить охотой, собирательством и шаманскими практиками. Они не знают, что где-то в небесах пролетают гигантские ракеты, что люди совершают выходы в открытый космос и отправляют роботов на другие планеты. Для них нет понятия глобальной экономики, интернета или даже электричества — они живут в гармонии с природой, сохраняя традиции, которые передавались из поколения в поколение. + +Такие племена — это напоминание о том, каково было наше прошлое, и, возможно, о том, что мы теряем, гоняясь за прогрессом. Они напоминают нам, что есть и другие способы жить — не в окружении гаджетов и технологий, а в мире, где главный ресурс — это время, природа и общение с близкими. Эта мысль заставляет задуматься: а так ли однозначен наш прогресс, или же мы что-то упускаем, устремляясь к звездам? +*** +## Мета информация +**Область**:: [[../meta/zero/00 Головные мюсли|00 Головные мюсли]] +**Родитель**:: +**Источник**:: +**Создана**:: [[2024-11-24]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + diff --git a/muesli/Объектно ориентированное программирование в современном мире.md b/muesli/Объектно ориентированное программирование в современном мире.md index d77d23c5..82fa6f4a 100644 --- a/muesli/Объектно ориентированное программирование в современном мире.md +++ b/muesli/Объектно ориентированное программирование в современном мире.md @@ -22,7 +22,7 @@ date: 2024-11-23 ==Это не обязательно плохо или хорошо — это просто реальность современных проектов.== Однако, странно продолжать говорить о применении объектно-ориентированного программирования, если оно фактически перестает соответствовать своим основным принципам. *** ## Мета информация -**Область**:: [[../meta/zero/00 Разработка|00 Разработка]] +**Область**:: [[../meta/zero/00 Головные мюсли|00 Головные мюсли]], [[../meta/zero/00 Разработка|00 Разработка]] **Родитель**:: **Источник**:: **Создана**:: [[2024-11-23]]