Обновление
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Struchkov Mark 2024-11-24 12:47:47 +03:00
parent 320a20c2b4
commit c334cee3d8
No known key found for this signature in database
GPG Key ID: A3F0AC3F0FA52F3C
13 changed files with 319 additions and 6 deletions

View File

@ -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]]
**Автор**::
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->

View File

@ -1,12 +1,13 @@
---
aliases:
aliases:
- рефакторинг
tags:
- maturity/🌱
date: 2024-11-24
---
Рефакторинг — это процесс улучшения существующего кода **без изменения его функциональности**.
Регулярный рефакторинг помогает избавиться от неудачных решений, которые усложняют понимание системы. Устраняя технический долг, команда уменьшает количество контекста, который необходимо удерживать в голове, и делает код понятнее.
Регулярный рефакторинг помогает избавиться от неудачных решений ([[../../muesli/Исторически так сложилось|Исторически так сложилось]]), которые усложняют понимание системы. Устраняя технический долг, команда уменьшает количество контекста, который необходимо удерживать в голове, и делает код понятнее.
***
## Мета информация
**Область**:: [[../../meta/zero/00 Эффективная разработка|00 Эффективная разработка]]

70
dev/java/ResultSet.md Normal file
View File

@ -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]]
**Автор**::
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->

View File

@ -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 \<module\>**: помогает находить сообщения ядра, связанные с определенным модулем.
***
## Мета информация
**Область**:: [[../../meta/zero/00 Linux|00 Linux]]
**Родитель**::
**Источник**::
**Создана**:: [[2024-11-24]]
**Автор**::
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
- [[Проверка свободного места на дисках]]
<!-- SerializedQuery END -->

View File

@ -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]]
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->

View File

@ -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/)
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
- [[Встраиваем поиск Omnisearch по базе знаний в поисковик]]
<!-- SerializedQuery END -->

View File

@ -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]]
**Автор**::
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->

View File

@ -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)

View File

@ -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). Автор рассказывает какие бывают структуры личных баз знаний. Какие структуры связей можно выстраивать в заметках.

View File

@ -8,6 +8,7 @@ aliases:
- база данных
- базу данных
- Реляционная база данных
- базами данных
linked:
- "[[../../../../_inbox/00 In-memory СуБД|00 In-memory СуБД]]"
---

View File

@ -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 Разработка]]

View File

@ -0,0 +1,25 @@
---
aliases:
tags:
- maturity/🌱
- content/muesli
date: 2024-11-24
---
Мы, как человеческий вид, достигли удивительных высот. Мы научились летать в космос, создавать межпланетные аппараты и возвращать ракеты обратно на стартовую площадку. Мы стоим на пороге освоения других планет, уже обсуждая возможности поселений на Марсе и путешествий за пределы нашей Солнечной системы. Эти достижения впечатляют своей масштабностью и инженерным искусством. Они символизируют невероятный прогресс, которого мы достигли за какие-то несколько сотен лет, начиная с того момента, когда человек впервые понял, как использовать огонь или колесо.
Но вместе с тем, на нашей планете по-прежнему есть люди, живущие так, как жили их предки тысячи лет назад. Изолированные племена, которые никогда не имели контакта с современной цивилизацией, продолжают жить охотой, собирательством и шаманскими практиками. Они не знают, что где-то в небесах пролетают гигантские ракеты, что люди совершают выходы в открытый космос и отправляют роботов на другие планеты. Для них нет понятия глобальной экономики, интернета или даже электричества — они живут в гармонии с природой, сохраняя традиции, которые передавались из поколения в поколение.
Такие племена — это напоминание о том, каково было наше прошлое, и, возможно, о том, что мы теряем, гоняясь за прогрессом. Они напоминают нам, что есть и другие способы жить — не в окружении гаджетов и технологий, а в мире, где главный ресурс — это время, природа и общение с близкими. Эта мысль заставляет задуматься: а так ли однозначен наш прогресс, или же мы что-то упускаем, устремляясь к звездам?
***
## Мета информация
**Область**:: [[../meta/zero/00 Головные мюсли|00 Головные мюсли]]
**Родитель**::
**Источник**::
**Создана**:: [[2024-11-24]]
**Автор**::
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->

View File

@ -22,7 +22,7 @@ date: 2024-11-23
==Это не обязательно плохо или хорошо — это просто реальность современных проектов.== Однако, странно продолжать говорить о применении объектно-ориентированного программирования, если оно фактически перестает соответствовать своим основным принципам.
***
## Мета информация
**Область**:: [[../meta/zero/00 Разработка|00 Разработка]]
**Область**:: [[../meta/zero/00 Головные мюсли|00 Головные мюсли]], [[../meta/zero/00 Разработка|00 Разработка]]
**Родитель**::
**Источник**::
**Создана**:: [[2024-11-23]]