Основные способы масштабирования баз данных:
(описание к предыдущему посту)
1. Индексирование (Indexing):
- Анализируйте шаблоны запросов вашего приложения и создавайте правильные индексы.
- Пример: создание индекса для столбца
2. Материализованные представления (Materialized Views):
- Предварительно вычисляйте результаты сложных запросов и храните их для более быстрого доступа.
- Пример: создание материализованного представления для таблицы
3. Денормализация (Denormalization):
- Уменьшайте количество сложных объединений для улучшения производительности запросов.
- Пример: объединение таблиц
4. Кэширование базы данных (Database Caching):
- Храните часто запрашиваемые данные в более быстром слое хранения.
- Пример: кэширование данных в приложении.
5. Репликация (Replication):
- Создавайте копии вашей основной базы данных на разных серверах для масштабирования чтения.
- Пример: создание реплик основной базы данных.
6. Вертикальное масштабирование (Vertical Scaling):
- Повышайте производительность сервера базы данных, добавляя больше CPU, RAM или хранилища.
- Пример: добавление ресурсов на сервер базы данных.
7. Шардинг (Sharding):
- Распределяйте ресурсы, которые потребуются до того, как они понадобятся.
- Пример: разделение таблицы
Эти стратегии помогают улучшить производительность и масштабируемость баз данных, позволяя справляться с возрастающими нагрузками и требованиями приложений.
(описание к предыдущему посту)
1. Индексирование (Indexing):
- Анализируйте шаблоны запросов вашего приложения и создавайте правильные индексы.
- Пример: создание индекса для столбца
order_amount в таблице Orders.2. Материализованные представления (Materialized Views):
- Предварительно вычисляйте результаты сложных запросов и храните их для более быстрого доступа.
- Пример: создание материализованного представления для таблицы
Orders с фильтрами.3. Денормализация (Denormalization):
- Уменьшайте количество сложных объединений для улучшения производительности запросов.
- Пример: объединение таблиц
Customers и Orders в одну таблицу Customer Orders.4. Кэширование базы данных (Database Caching):
- Храните часто запрашиваемые данные в более быстром слое хранения.
- Пример: кэширование данных в приложении.
5. Репликация (Replication):
- Создавайте копии вашей основной базы данных на разных серверах для масштабирования чтения.
- Пример: создание реплик основной базы данных.
6. Вертикальное масштабирование (Vertical Scaling):
- Повышайте производительность сервера базы данных, добавляя больше CPU, RAM или хранилища.
- Пример: добавление ресурсов на сервер базы данных.
7. Шардинг (Sharding):
- Распределяйте ресурсы, которые потребуются до того, как они понадобятся.
- Пример: разделение таблицы
Orders на несколько шардов.Эти стратегии помогают улучшить производительность и масштабируемость баз данных, позволяя справляться с возрастающими нагрузками и требованиями приложений.
Telegram
METANIT.COM
Основные способы масштабирования баз данных
👎6👍4❤2👏1
Как работают каналы (pipes) в Linux:
(описание к предыдущему посту)
#linux
1. Каналы (Pipes):
- Позволяют межпроцессное взаимодействие путем отправки данных из вывода одного процесса (stdout) на ввод другого (stdin).
- Однонаправленные: данные текут только в одном направлении — от писателя к читателю.
- Концептуальный поток: Процесс A (stdout) → [PIPE] → (stdin) Процесс B.
2. Анонимные каналы (Anonymous Pipes):
- Временный, однонаправленный канал связи между двумя связанными процессами.
- Однонаправленные: данные текут только в одном направлении.
- Область видимости: существует только во время выполнения процессов.
- Создание: создаются программно с помощью системного вызова pipe() или неявно через оператор | в командной оболочке.
- Использование: обычно используются для связывания команд в конвейере.
- Пример:
-
- Вывод фильтруется с помощью
- Отфильтрованные строки подсчитываются с помощью
3. Именованные каналы (Named Pipe, FIFO):
- Также известны как FIFO (First In, First Out).
- Постоянный канал связи, который существует как специальный файл в файловой системе, позволяющий не связанным процессам общаться.
- Однонаправленные: как анонимные каналы, данные текут в одном направлении.
- Постоянство: остается в файловой системе до явного удаления.
- Создание: создается с помощью команд
- Область видимости: может быть доступен через разные сессии или несвязанные процессы.
- Пример:
1. Создание именованного канала:
2. Запись в канал:
3. Чтение из канала:
4. Важные примечания:
- Анонимные каналы идеальны для простых, временных задач, таких как связывание команд в конвейере.
- Именованные каналы лучше подходят для сложных рабочих процессов, требующих межпроцессного взаимодействия между несвязанными процессами или сессиями.
(описание к предыдущему посту)
#linux
1. Каналы (Pipes):
- Позволяют межпроцессное взаимодействие путем отправки данных из вывода одного процесса (stdout) на ввод другого (stdin).
- Однонаправленные: данные текут только в одном направлении — от писателя к читателю.
- Концептуальный поток: Процесс A (stdout) → [PIPE] → (stdin) Процесс B.
2. Анонимные каналы (Anonymous Pipes):
- Временный, однонаправленный канал связи между двумя связанными процессами.
- Однонаправленные: данные текут только в одном направлении.
- Область видимости: существует только во время выполнения процессов.
- Создание: создаются программно с помощью системного вызова pipe() или неявно через оператор | в командной оболочке.
- Использование: обычно используются для связывания команд в конвейере.
- Пример:
cat file.txt | grep "keyword" | wc -l-
cat читает файл.- Вывод фильтруется с помощью
grep.- Отфильтрованные строки подсчитываются с помощью
wc.3. Именованные каналы (Named Pipe, FIFO):
- Также известны как FIFO (First In, First Out).
- Постоянный канал связи, который существует как специальный файл в файловой системе, позволяющий не связанным процессам общаться.
- Однонаправленные: как анонимные каналы, данные текут в одном направлении.
- Постоянство: остается в файловой системе до явного удаления.
- Создание: создается с помощью команд
mkfifo или mknod.- Область видимости: может быть доступен через разные сессии или несвязанные процессы.
- Пример:
1. Создание именованного канала:
mkfifo my_pipe2. Запись в канал:
echo "Hello, World!" > my_pipe &3. Чтение из канала:
cat < my_pipe4. Важные примечания:
- Анонимные каналы идеальны для простых, временных задач, таких как связывание команд в конвейере.
- Именованные каналы лучше подходят для сложных рабочих процессов, требующих межпроцессного взаимодействия между несвязанными процессами или сессиями.
Telegram
METANIT.COM
Как работают каналы (pipes) в Linux
#linux
#linux
❤5🔥3👏1
Какой способ установки типа переменной более интуитивен (перед переменной или после переменной) ?
Anonymous Poll
90%
int n = 5;
10%
n: int = 5;
🤡22🌚12👍8😁6🤨4❤3🔥2
В руководство по языку Python добавлена новая статья про Пакетный менеджер uv
https://metanit.com/python/tutorial/6.10.php
#python
https://metanit.com/python/tutorial/6.10.php
#python
👍13❤3🔥2🤮2🆒2
Тем временем в июле ситуация в российском ИТ прододжила ухудщаться.
hh.индекс, который показывает соотношение количества активных резюме к количеству активных вакансий на рынке в выбранной профобласти, достиг 13, 7 (больше или равно 12 — крайне высокий уровень конкуренции соискателей за рабочие места)
Предлашаемые зарплаты за последние полгода застыли на уровне 90 000 рублей (медианный уровень дохода в вакансиях)
Количество вакансий уменьшилось год к году на 33%, а колиество резюме возросло на 28%
https://stats.hh.ru/?hhIndexProfArea=information_technology
hh.индекс, который показывает соотношение количества активных резюме к количеству активных вакансий на рынке в выбранной профобласти, достиг 13, 7 (больше или равно 12 — крайне высокий уровень конкуренции соискателей за рабочие места)
Предлашаемые зарплаты за последние полгода застыли на уровне 90 000 рублей (медианный уровень дохода в вакансиях)
Количество вакансий уменьшилось год к году на 33%, а колиество резюме возросло на 28%
https://stats.hh.ru/?hhIndexProfArea=information_technology
😢31😁6😱5👎4🌚4🤣2🎅2
Что такое принципы SOLID?
(описание к предыдущему посту)
SOLID — это набор рекомендаций по созданию программного обеспечения, которое легко понимать, модифицировать и расширять.
Аббревиатура SOLID расшифровывается следующим образом:
S → Принцип единственной ответственности
O → Принцип открытости/закрытости
L → Принцип подстановки Лисков
I → Принцип разделения интерфейсов
D → Принцип инверсии зависимостей
* Принцип единственной ответственности (SRP) гласит, что у класса должна быть только одна причина для изменения. Другими словами, у него должна быть единственная чётко определённая обязанность или задача в программной системе.
* Принцип открытости/закрытости (OCP) утверждает, что программные сущности (например, классы) должны быть открыты для расширения, но закрыты для модификации. Это означает, что можно добавлять новую функциональность, не изменяя существующий код.
* Принцип подстановки Лисков (LSP) утверждает, что объекты производного класса должны иметь возможность заменять объекты базового класса без нарушения корректности программы.
* Принцип разделения интерфейсов (ISP) подчёркивает, что классы или компоненты, использующие интерфейсы, не должны зависеть от интерфейсов, которые они не используют.
* Принцип инверсии зависимостей (DIP) гласит, что высокоуровневые модули (или классы) не должны зависеть от низкоуровневых модулей; оба должны зависеть от абстракций, таких как интерфейсы.
(описание к предыдущему посту)
SOLID — это набор рекомендаций по созданию программного обеспечения, которое легко понимать, модифицировать и расширять.
Аббревиатура SOLID расшифровывается следующим образом:
S → Принцип единственной ответственности
O → Принцип открытости/закрытости
L → Принцип подстановки Лисков
I → Принцип разделения интерфейсов
D → Принцип инверсии зависимостей
* Принцип единственной ответственности (SRP) гласит, что у класса должна быть только одна причина для изменения. Другими словами, у него должна быть единственная чётко определённая обязанность или задача в программной системе.
* Принцип открытости/закрытости (OCP) утверждает, что программные сущности (например, классы) должны быть открыты для расширения, но закрыты для модификации. Это означает, что можно добавлять новую функциональность, не изменяя существующий код.
* Принцип подстановки Лисков (LSP) утверждает, что объекты производного класса должны иметь возможность заменять объекты базового класса без нарушения корректности программы.
* Принцип разделения интерфейсов (ISP) подчёркивает, что классы или компоненты, использующие интерфейсы, не должны зависеть от интерфейсов, которые они не используют.
* Принцип инверсии зависимостей (DIP) гласит, что высокоуровневые модули (или классы) не должны зависеть от низкоуровневых модулей; оба должны зависеть от абстракций, таких как интерфейсы.
Telegram
METANIT.COM
Что такое принципы SOLID?
👍15🔥3👏1
Мессенджер Max станет обязательным для предустановки на все новые смартфоны в РФ с 1 сентября. Вкратце о мессенджере:
"Max сочетает в себе функции общения (чаты, звонки, передача файлов до 4 ГБ), интеграцию с государственными сервисами (Госуслуги, цифровая подпись), а также финансовые инструменты через систему быстрых платежей."
"Приложение собирает IP-адреса, данные о местоположении и активностях пользователей, а его политика допускает передачу этих сведений государственным органам. End-to-end шифрование, в отличие от других мессенджеров, пока не реализовано - используется защита канала связи, что оставляет данные уязвимыми на серверах"
https://ria.ru/20250806/yurist-2033592622.html
"Max сочетает в себе функции общения (чаты, звонки, передача файлов до 4 ГБ), интеграцию с государственными сервисами (Госуслуги, цифровая подпись), а также финансовые инструменты через систему быстрых платежей."
"Приложение собирает IP-адреса, данные о местоположении и активностях пользователей, а его политика допускает передачу этих сведений государственным органам. End-to-end шифрование, в отличие от других мессенджеров, пока не реализовано - используется защита канала связи, что оставляет данные уязвимыми на серверах"
https://ria.ru/20250806/yurist-2033592622.html
РИА Новости
Юрист рассказал, когда MAX будет обязателен к установке на новые смартфоны
Мессенджер MAX станет обязательным для предустановки на все новые смартфоны в РФ с 1 сентября, рассказал РИА Новости юрист, руководитель Центра правопорядка в... РИА Новости, 13.08.2025
🤡64💩28👎6👍5🤣3😁2❤1🤔1
Вице-президент Microsoft Дэвид Уэстон поделился смелыми прогнозами относительно будущего Windows-ПК. По мнению Уэстона, к 2030 году взаимодействия людей с компьютерами кардинально изменится.
В Microsoft говорят, что центральным элементом Windows станет искусственный интеллект. ИИ-модель Copilot уже интегрирована в каждый уголок системы, но в ближайшие 5 лет нейросеть проникнет еще глубже.
Дальше — интереснее. По словам Дэвида, из-за плотной интеграции ИИ в Windows людям не понадобятся ни мышки, ни клавиатуры. Компьютерами можно будет управлять голосом, силой мысли, зрением и другими мультимодальными способами. В Microsoft говорят, что мышки и клавиатуры в будущем покажутся «чужеродными». Ровно так же, как для современной молодежи кажутся рудиментами кнопки на телефонах.
https://www.pcgamer.com/software/windows/kiss-goodbye-to-your-keyboard-and-mouse-in-microsofts-vision-for-the-windows-os-in-2030-theyll-both-feel-as-alien-as-it-does-for-gen-z-to-use-dos/
В Microsoft говорят, что центральным элементом Windows станет искусственный интеллект. ИИ-модель Copilot уже интегрирована в каждый уголок системы, но в ближайшие 5 лет нейросеть проникнет еще глубже.
Дальше — интереснее. По словам Дэвида, из-за плотной интеграции ИИ в Windows людям не понадобятся ни мышки, ни клавиатуры. Компьютерами можно будет управлять голосом, силой мысли, зрением и другими мультимодальными способами. В Microsoft говорят, что мышки и клавиатуры в будущем покажутся «чужеродными». Ровно так же, как для современной молодежи кажутся рудиментами кнопки на телефонах.
https://www.pcgamer.com/software/windows/kiss-goodbye-to-your-keyboard-and-mouse-in-microsofts-vision-for-the-windows-os-in-2030-theyll-both-feel-as-alien-as-it-does-for-gen-z-to-use-dos/
PC Gamer
Kiss goodbye to your keyboard and mouse, in Microsoft's vision for the Windows OS in 2030 they'll both 'feel as alien as it does…
And it's all thanks to, yup you guessed it, AI.
🤡60😁6👍3🤬2🤮2💩2❤1👎1👻1
Гендиректор GitHub: программисты, учитесь работать с ИИ, или уходите из профессии
Генеральный директор GitHub Томас Домке заявил, что у программистов в текущих реалиях уже нет выбора. Им нужно смириться с ИИ и продолжать карьеру вместе с этой технологией, или сменить профессию.
Домке пояснил, что разработчики, которые раньше скептически или несерьёзно относились к ИИ‑инструментам, например, к GitHub Copilot, а теперь интегрируют его в работу, активно растут в техническом плане. Они становятся более амбициозными и больше удовлетворены своей работой. По мнению главы GitHub, такие разработчики не просто пишут меньше кода благодаря ИИ, но и способны выполнять более сложную, системную работу, повышая потолок своих возможностей и становясь более ценными специалистами на IT-рынке.
По прогнозу Домке, в течение ближайших 2-5 лет ИИ будет писать 90% кода. А для разработчиков приобретут значения новые навыки: дирижирование агентами, итеративное взаимодействие с ними и критическая оценка их результатов.
Домке добавил, что ИИ — это не конец профессии для разработчиков, но её полное переосмысление и перерождение. И эта трансформация не какая‑то гипотетическая, она происходит уже сейчас в настоящее время, предупредил глава GitHub.
https://ashtom.github.io/developers-reinvented
Генеральный директор GitHub Томас Домке заявил, что у программистов в текущих реалиях уже нет выбора. Им нужно смириться с ИИ и продолжать карьеру вместе с этой технологией, или сменить профессию.
Домке пояснил, что разработчики, которые раньше скептически или несерьёзно относились к ИИ‑инструментам, например, к GitHub Copilot, а теперь интегрируют его в работу, активно растут в техническом плане. Они становятся более амбициозными и больше удовлетворены своей работой. По мнению главы GitHub, такие разработчики не просто пишут меньше кода благодаря ИИ, но и способны выполнять более сложную, системную работу, повышая потолок своих возможностей и становясь более ценными специалистами на IT-рынке.
По прогнозу Домке, в течение ближайших 2-5 лет ИИ будет писать 90% кода. А для разработчиков приобретут значения новые навыки: дирижирование агентами, итеративное взаимодействие с ними и критическая оценка их результатов.
Домке добавил, что ИИ — это не конец профессии для разработчиков, но её полное переосмысление и перерождение. И эта трансформация не какая‑то гипотетическая, она происходит уже сейчас в настоящее время, предупредил глава GitHub.
https://ashtom.github.io/developers-reinvented
ashtom.github.io
Developers, Reinvented – Thomas Dohmke
What started as fear of AI replacing developers is switching to pragmatically embracing the ambitious reality of AI and viewing it as a growth opportunity. As we build the tools of tomorrow, we can usher developers through this reinvention of their role in…
🤡41🔥5🤔5👍4🥴2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Сколько времени потребуется на прочтение мануалов по определенному языку программирования
(не знаю, как они считали и какие мануалы взяты за основу, но, на мой взгляд, значения преуменьшены, даже если просто по диагонали читать)
(не знаю, как они считали и какие мануалы взяты за основу, но, на мой взгляд, значения преуменьшены, даже если просто по диагонали читать)
🤔53🤡9😁6🙈2🤣1
ФСБ не разрешила подключить мессенджер MAX к «Госуслугам» из-за угроз безопасности
ФСБ выдвинула к национальному мессенджеру MAX обширный перечень претензий, касающихся защиты персональных данных (ПД) пользователей.
Претензии ФСБ расписаны на несколько страниц и включают требования о создании модели угроз, обеспечивающей защищенность персональных данных пользователей, а также о заключении договоров с лицензиатами Федеральной службы по техническому и экспортному контролю и ФСБ для проведения аудита
Согласно сообщениям, силовики требуют внедрить криптозащиту определенного класса, сертифицированную ФСБ, а также предоставить исходный код мессенджера для проверки.
https://habr.com/ru/news/934874/
ФСБ выдвинула к национальному мессенджеру MAX обширный перечень претензий, касающихся защиты персональных данных (ПД) пользователей.
Претензии ФСБ расписаны на несколько страниц и включают требования о создании модели угроз, обеспечивающей защищенность персональных данных пользователей, а также о заключении договоров с лицензиатами Федеральной службы по техническому и экспортному контролю и ФСБ для проведения аудита
Согласно сообщениям, силовики требуют внедрить криптозащиту определенного класса, сертифицированную ФСБ, а также предоставить исходный код мессенджера для проверки.
https://habr.com/ru/news/934874/
Хабр
ФСБ не разрешила подключить мессенджер MAX к «Госуслугам» из-за угроз безопасности
ФСБ выдвинула к национальному мессенджеру MAX обширный перечень претензий, касающихся защиты персональных данных пользователей, которые будет необходимо закрыть, прежде чем коммуникационный сервис...
🤣74👍24❤8👏5🔥2🥰1🍓1
Этапы работы больших языковых моделей LLM (Large-Language Models) (Описание в следующем посте)
Этапы работы больших языковых моделей LLM (Large-Language Models):
(продолжение предыдущего поста)
1. Сбор данных и токенизация (Data Collection and Tokenization):
- На этом этапе происходит сбор большого объема текстовых данных и их токенизация, то есть разделение на отдельные элементы (токены).
2. Очистка и токенизация (Cleaning and Tokenizing):
- Данные очищаются от ненужной информации и повторно токенизируются для подготовки к обучению модели.
3. Механизм само-внимания (Self-Attention Mechanism):
- Используется для обработки данных с учетом контекста и взаимосвязей между токенами.
4. Оптимизация на основе градиента (Gradient-based optimization):
- Применяется для улучшения параметров модели на основе анализа ошибок.
5. Обучение с использованием архитектуры трансформера (Pretraining with Transformer Architecture):
- Модель обучается на больших текстовых наборах данных с использованием архитектуры трансформера.
6. Файн-тюнинг для конкретных задач (Fine-Tuning for Specific Tasks):
- Модель настраивается для выполнения конкретных задач, таких как классификация текста или генерация ответов.
7. Квантование, обрезка, дистилляция (Quantization, Pruning, Distillation):
- Применяются методы оптимизации модели для уменьшения ее размера и повышения эффективности.
8. Меры безопасности (Safety Measures):
- Включают проверку модели на соответствие этическим стандартам и безопасность использования.
9. Оптимизация и развертывание (Optimization & Deployment):
- Модель оптимизируется для работы в производственных условиях и развертывается для использования.
10. Генерация вывода и ответов (Inference & Response Generation):
- Модель используется для генерации ответов на запросы пользователей.
11. Стратегии декодирования (Decoding strategies):
- Применяются различные стратегии для улучшения качества генерируемых ответов.
12. Поиск и извлечение информации (RAG):
- Используется для поиска и извлечения информации из внешних источников для улучшения ответов модели.
(продолжение предыдущего поста)
1. Сбор данных и токенизация (Data Collection and Tokenization):
- На этом этапе происходит сбор большого объема текстовых данных и их токенизация, то есть разделение на отдельные элементы (токены).
2. Очистка и токенизация (Cleaning and Tokenizing):
- Данные очищаются от ненужной информации и повторно токенизируются для подготовки к обучению модели.
3. Механизм само-внимания (Self-Attention Mechanism):
- Используется для обработки данных с учетом контекста и взаимосвязей между токенами.
4. Оптимизация на основе градиента (Gradient-based optimization):
- Применяется для улучшения параметров модели на основе анализа ошибок.
5. Обучение с использованием архитектуры трансформера (Pretraining with Transformer Architecture):
- Модель обучается на больших текстовых наборах данных с использованием архитектуры трансформера.
6. Файн-тюнинг для конкретных задач (Fine-Tuning for Specific Tasks):
- Модель настраивается для выполнения конкретных задач, таких как классификация текста или генерация ответов.
7. Квантование, обрезка, дистилляция (Quantization, Pruning, Distillation):
- Применяются методы оптимизации модели для уменьшения ее размера и повышения эффективности.
8. Меры безопасности (Safety Measures):
- Включают проверку модели на соответствие этическим стандартам и безопасность использования.
9. Оптимизация и развертывание (Optimization & Deployment):
- Модель оптимизируется для работы в производственных условиях и развертывается для использования.
10. Генерация вывода и ответов (Inference & Response Generation):
- Модель используется для генерации ответов на запросы пользователей.
11. Стратегии декодирования (Decoding strategies):
- Применяются различные стратегии для улучшения качества генерируемых ответов.
12. Поиск и извлечение информации (RAG):
- Используется для поиска и извлечения информации из внешних источников для улучшения ответов модели.
Telegram
METANIT.COM
Этапы работы больших языковых моделей LLM (Large-Language Models)
🔥8❤2🤔2