Как работает MongoDB
(продолжение предыдущего поста)
MongoDB был создан из необходимости. Основатели столкнулись с проблемами при создании масштабных веб-приложений с использованием существующих баз данных.
По мере роста интернета, появления всё более динамичных веб-сайтов и приложений, старые инструменты баз данных не справлялись с нагрузкой.
MongoDB был разработан для заполнения этого пробела.
MongoDB предложил гибкость, масштабируемость и простоту использования, которые были необходимы разработчикам для нового веба.
MongoDB в основном написан на C++, но использует JavaScript для своей оболочки и Python для некоторых инструментов и драйверов.
📌 Как рабоатет MongoDB
* По своей сути MongoDB — это NoSQL, документоориентированная база данных.
* Традиционные реляционные базы данных хранят данные в таблицах и строках.
Но:
* MongoDB «внутренне» хранит данные в бинарном формате, называемом BSON (Binary JSON).
* BSON — это расширенный набор JSON.
* Он может представлять всё, что может JSON, плюс дополнительные типы данных, такие как даты и бинарные данные.
* BSON более компактен, чем JSON, что уменьшает объём памяти и повышает производительность.
* Такая структура позволяет более естественно представлять реальные объекты и связи между ними.
📌 Разберём архитектуру MongoDB
1. Модель документов
Гибкие, похожие на JSON документы хранят данные, позволяя использовать различные структуры и вложенные объекты.
2. Коллекции
Группы документов, аналогичные таблицам, но без схемы, обеспечивающие гибкую организацию.
3. mongod
Основной процесс, обрабатывающий хранение, запросы и администрирование (основной демон-процесс).
4. mongos (если используется шардирование)
Маршрутизирует запросы в распределённом кластере к правильным разделам данных (соответствующим шардам).
5. Реплика-сеты
Несколько узлов поддерживают копии данных, обеспечивая высокую доступность и отказоустойчивость.
6. Шардирование
Горизонтальное масштабирование путём распределения данных по нескольким серверам для больших наборов данных и высокой нагрузки.
7. Индексы
Структуры данных для ускорения запросов, поддерживающие различные типы для разных шаблонов доступа.
8. WiredTiger
Механизм хранения по умолчанию, оптимизированный для использования памяти и диска с контролем параллелизма.
9. Фреймворк агрегации
Мощный конвейерный фреймворк для сложного анализа и преобразования данных.
10. Язык запросов
Выразительный язык для фильтрации, сортировки, проецирования и агрегации данных.
📌 Некоторые варианты использования
1. Управление контентом.
2. Аналитика в реальном времени.
3. Интернет вещей (IoT).
4. Мобильные приложения.
5. Каталоги продукции.
📌 Проблемы
1. Транзакции
Использует модель «snapshot isolation», которая может иметь последствия для приложений, требующих строгих гарантий ACID.
2. Моделирование данных
Гибкость требует продуманного проектирования.
3. Соединения
MongoDB не поддерживает традиционные SQL-соединения.
4. Операционные затраты
MongoDB может требовать больше операционных знаний.
5. Стоимость
MongoDB может быть дорогим в эксплуатации, особенно при масштабировании.
(продолжение предыдущего поста)
MongoDB был создан из необходимости. Основатели столкнулись с проблемами при создании масштабных веб-приложений с использованием существующих баз данных.
По мере роста интернета, появления всё более динамичных веб-сайтов и приложений, старые инструменты баз данных не справлялись с нагрузкой.
MongoDB был разработан для заполнения этого пробела.
MongoDB предложил гибкость, масштабируемость и простоту использования, которые были необходимы разработчикам для нового веба.
MongoDB в основном написан на C++, но использует JavaScript для своей оболочки и Python для некоторых инструментов и драйверов.
📌 Как рабоатет MongoDB
* По своей сути MongoDB — это NoSQL, документоориентированная база данных.
* Традиционные реляционные базы данных хранят данные в таблицах и строках.
Но:
* MongoDB «внутренне» хранит данные в бинарном формате, называемом BSON (Binary JSON).
* BSON — это расширенный набор JSON.
* Он может представлять всё, что может JSON, плюс дополнительные типы данных, такие как даты и бинарные данные.
* BSON более компактен, чем JSON, что уменьшает объём памяти и повышает производительность.
* Такая структура позволяет более естественно представлять реальные объекты и связи между ними.
📌 Разберём архитектуру MongoDB
1. Модель документов
Гибкие, похожие на JSON документы хранят данные, позволяя использовать различные структуры и вложенные объекты.
2. Коллекции
Группы документов, аналогичные таблицам, но без схемы, обеспечивающие гибкую организацию.
3. mongod
Основной процесс, обрабатывающий хранение, запросы и администрирование (основной демон-процесс).
4. mongos (если используется шардирование)
Маршрутизирует запросы в распределённом кластере к правильным разделам данных (соответствующим шардам).
5. Реплика-сеты
Несколько узлов поддерживают копии данных, обеспечивая высокую доступность и отказоустойчивость.
6. Шардирование
Горизонтальное масштабирование путём распределения данных по нескольким серверам для больших наборов данных и высокой нагрузки.
7. Индексы
Структуры данных для ускорения запросов, поддерживающие различные типы для разных шаблонов доступа.
8. WiredTiger
Механизм хранения по умолчанию, оптимизированный для использования памяти и диска с контролем параллелизма.
9. Фреймворк агрегации
Мощный конвейерный фреймворк для сложного анализа и преобразования данных.
10. Язык запросов
Выразительный язык для фильтрации, сортировки, проецирования и агрегации данных.
📌 Некоторые варианты использования
1. Управление контентом.
2. Аналитика в реальном времени.
3. Интернет вещей (IoT).
4. Мобильные приложения.
5. Каталоги продукции.
📌 Проблемы
1. Транзакции
Использует модель «snapshot isolation», которая может иметь последствия для приложений, требующих строгих гарантий ACID.
2. Моделирование данных
Гибкость требует продуманного проектирования.
3. Соединения
MongoDB не поддерживает традиционные SQL-соединения.
4. Операционные затраты
MongoDB может требовать больше операционных знаний.
5. Стоимость
MongoDB может быть дорогим в эксплуатации, особенно при масштабировании.
Telegram
METANIT.COM
Как рабоатет MongoDB
(продолжение в следующем посте)
(продолжение в следующем посте)
🔥5❤3👏2🤮1
В России начинают готовить врачей с IT-навыками
Цифровая грамотность становится условием для работы врачом; некоторые вузы в мире и в России начинают готовить медицинские кадры с базовыми IT-навыками, заявил министр здравоохранения РФ Михаил Мурашко.
"Все диагностические приборы, которые мы сегодня используем, или приборы, которые используются для лечения - они совершенно иного формата. Цифровая грамотность - это условие (...). В мире уже ряд вузов и наши начинают готовить самые передовые (медицинские кадры - ИФ) с базовыми IT-навыками, которые будут привносить изменения не только как специалисты-медики, но и IT-специалисты, и у них сегодня кардинальное преимущество", - сказал Мурашко на Всероссийском форуме волонтеров-медиков в четверг.
По его словам, раньше говорили о том, что врачу необходима цифровая грамотность на уровне пользователя. "Сегодня говорить о цифровой грамотности только на уровне пользователя - это неправильно", - отметил министр. Само программирование в настоящее время становится более доступным с использованием искусственного интеллекта, добавил глава Минздрава РФ.
https://www.interfax.ru/russia/1044572
PS. А писать код врачи будут также понятно, как они пишут рецепты
Цифровая грамотность становится условием для работы врачом; некоторые вузы в мире и в России начинают готовить медицинские кадры с базовыми IT-навыками, заявил министр здравоохранения РФ Михаил Мурашко.
"Все диагностические приборы, которые мы сегодня используем, или приборы, которые используются для лечения - они совершенно иного формата. Цифровая грамотность - это условие (...). В мире уже ряд вузов и наши начинают готовить самые передовые (медицинские кадры - ИФ) с базовыми IT-навыками, которые будут привносить изменения не только как специалисты-медики, но и IT-специалисты, и у них сегодня кардинальное преимущество", - сказал Мурашко на Всероссийском форуме волонтеров-медиков в четверг.
По его словам, раньше говорили о том, что врачу необходима цифровая грамотность на уровне пользователя. "Сегодня говорить о цифровой грамотности только на уровне пользователя - это неправильно", - отметил министр. Само программирование в настоящее время становится более доступным с использованием искусственного интеллекта, добавил глава Минздрава РФ.
https://www.interfax.ru/russia/1044572
PS. А писать код врачи будут также понятно, как они пишут рецепты
Интерфакс
В России начинают готовить врачей с IT-навыками
Цифровая грамотность становится условием для работы врачом; некоторые вузы в мире и в России начинают готовить медицинские кадры с базовыми IT-навыками, заявил министр здравоохранения РФ Михаил Мурашко."Все диагностические приборы, которые мы сегодня используем…
😁27😱6🤡4🤣4👍1💩1
22 базовых шаблона проектирования облачных систем
Шаблоны обеспечения доступа
1. Предохранитель (Circuit Breaker)
Останавливает сервис от повторных попыток выполнения неудачной операции.
2. Повтор (Retry)
Позволяет приложению обрабатывать временные сбои при попытке подключения к сервису или сетевому ресурсу.
3. Регулирование нагрузки (Throttling)
Контролирует потребление ресурсов, используемых экземпляром приложения, отдельным клиентом или целым сервисом.
4. Мониторинг работоспособности (Health Endpoint Monitoring)
Отслеживает состояние приложения и его компонентов.
5. Выравнивание нагрузки на основе очереди (Queue-Based Load Leveling)
Использует очередь как буфер между задачей и сервисом, который она вызывает.
6. Супервизор планировщика агентов (Scheduler Agent Supervisor)
Координирует набор действий в распределённом наборе сервисов и других удалённых ресурсов.
Шаблоны управления данными
7. Кэширование по требованию (Cache-Aside)
Загружает данные по запросу из хранилища данных в кэш.
8. CQRS
Разделяет операции чтения данных от операций обновления данных с помощью отдельных интерфейсов.
9. Event Sourcing
Использует хранилище только для добавления записей, чтобы фиксировать полную серию событий, описывающих действия над данными в домене.
10. Materialized View
Создаёт предварительно заполненное представление данных в средах, где исходные данные не подходят для запросов.
11. Шардинг (Sharding)
Разделяет хранилище данных на набор горизонтальных разделов или шардов.
12. Valet Key
Использует токен или ключ, который предоставляет клиентам ограниченный прямой доступ к определённому ресурсу или сервису.
Шаблоны проектирования и реализации
13. Посредник (Ambassador)
Использует вспомогательный сервис, который отправляет сетевые запросы от имени потребительского сервиса или приложения.
14. Anti-corruption Layer
Реализует фасад между новыми и устаревшими приложениями.
15. Бэкенды для фронтендов (BFF)
Создаёт отдельные бэкенд-сервисы для использования конкретными фронтенд-приложениями или интерфейсами.
16. Консолидация вычислительных ресурсов (Compute Resource Consolidation)
Объединяет несколько задач или рабочих нагрузок на меньшее количество вычислительных ресурсов.
17. Внешнее хранилище конфигурации (External Configuration Store)
Перемещает информацию о конфигурации из пакета развёртывания приложения в централизованное хранилище.
18. Gatekeeper
Защищает бэкенд-сервисы и API от запросов из разных источников (CORS), не имеющих действительных токенов аутентификации.
19. Sidecar
Развёртывает компоненты приложения в отдельный процесс или контейнер для обеспечения изоляции и инкапсуляции.
20. Strangler Fig
Постепенно мигрирует устаревшую систему путём постепенной замены определённых функциональных элементов новыми приложениями и сервисами.
Шаблоны обмена сообщениями
21. Конкурирующие потребители (Competing Consumers)
Позволяет нескольким параллельным потребителям обрабатывать сообщения, полученные по одному каналу обмена сообщениями.
22. Очередь приоритетов (Priority Queue)
Обрабатывает сообщения на основе их приоритета.
Шаблоны обеспечения доступа
1. Предохранитель (Circuit Breaker)
Останавливает сервис от повторных попыток выполнения неудачной операции.
2. Повтор (Retry)
Позволяет приложению обрабатывать временные сбои при попытке подключения к сервису или сетевому ресурсу.
3. Регулирование нагрузки (Throttling)
Контролирует потребление ресурсов, используемых экземпляром приложения, отдельным клиентом или целым сервисом.
4. Мониторинг работоспособности (Health Endpoint Monitoring)
Отслеживает состояние приложения и его компонентов.
5. Выравнивание нагрузки на основе очереди (Queue-Based Load Leveling)
Использует очередь как буфер между задачей и сервисом, который она вызывает.
6. Супервизор планировщика агентов (Scheduler Agent Supervisor)
Координирует набор действий в распределённом наборе сервисов и других удалённых ресурсов.
Шаблоны управления данными
7. Кэширование по требованию (Cache-Aside)
Загружает данные по запросу из хранилища данных в кэш.
8. CQRS
Разделяет операции чтения данных от операций обновления данных с помощью отдельных интерфейсов.
9. Event Sourcing
Использует хранилище только для добавления записей, чтобы фиксировать полную серию событий, описывающих действия над данными в домене.
10. Materialized View
Создаёт предварительно заполненное представление данных в средах, где исходные данные не подходят для запросов.
11. Шардинг (Sharding)
Разделяет хранилище данных на набор горизонтальных разделов или шардов.
12. Valet Key
Использует токен или ключ, который предоставляет клиентам ограниченный прямой доступ к определённому ресурсу или сервису.
Шаблоны проектирования и реализации
13. Посредник (Ambassador)
Использует вспомогательный сервис, который отправляет сетевые запросы от имени потребительского сервиса или приложения.
14. Anti-corruption Layer
Реализует фасад между новыми и устаревшими приложениями.
15. Бэкенды для фронтендов (BFF)
Создаёт отдельные бэкенд-сервисы для использования конкретными фронтенд-приложениями или интерфейсами.
16. Консолидация вычислительных ресурсов (Compute Resource Consolidation)
Объединяет несколько задач или рабочих нагрузок на меньшее количество вычислительных ресурсов.
17. Внешнее хранилище конфигурации (External Configuration Store)
Перемещает информацию о конфигурации из пакета развёртывания приложения в централизованное хранилище.
18. Gatekeeper
Защищает бэкенд-сервисы и API от запросов из разных источников (CORS), не имеющих действительных токенов аутентификации.
19. Sidecar
Развёртывает компоненты приложения в отдельный процесс или контейнер для обеспечения изоляции и инкапсуляции.
20. Strangler Fig
Постепенно мигрирует устаревшую систему путём постепенной замены определённых функциональных элементов новыми приложениями и сервисами.
Шаблоны обмена сообщениями
21. Конкурирующие потребители (Competing Consumers)
Позволяет нескольким параллельным потребителям обрабатывать сообщения, полученные по одному каналу обмена сообщениями.
22. Очередь приоритетов (Priority Queue)
Обрабатывает сообщения на основе их приоритета.
❤6💘3🔥1👏1
Буферизация страниц данных MySQL и Postgres
Движок InnoDB в MySQL использует подход, обеспечивающий больший контроль: с помощью innodb_flush_method='O_DIRECT' он может обойти большую часть накладных расходов на кэш страниц ОС, предпочитая управление самостоятельно. innodb_buffer_pool_size определяет объём оперативной памяти, используемый для этого кэша. На выделенных серверах баз данных этот размер часто составляет 70 %+ от общего объёма оперативной памяти.
Он делит это пространство на несколько подэкземпляров буфера, каждый из которых поддерживает двухчастный список LRU-страниц: список новых страниц и список старых страниц. Новые страницы попадают в старый список и должны сохраняться без вытеснения в течение определённого времени (innodb_old_blocks_time), прежде чем им будет разрешено попасть в список новых страниц. Это предотвращает перегрузку при массовых операциях, таких как сканирование таблиц.
Postgres применяет подход, реализующий относительно более простой кэш, полагаясь при этом на кэш страниц ОС для управления загрузкой и извлечением страниц из оперативной памяти. Структура shared_buffers управляет размером и часто устанавливается на уровне ~30% от доступной оперативной памяти, оставляя достаточно места для кэша страниц ОС.
Postgres использует алгоритм «часовой очистки» для вытеснения. Каждая страница в shared_buffers ведёт счётчик, который увеличивается при использовании (до определённого предела) и уменьшается при заполнении. Когда счётчик ссылок достигает нуля, страница может быть заменена другой страницей.
Движок InnoDB в MySQL использует подход, обеспечивающий больший контроль: с помощью innodb_flush_method='O_DIRECT' он может обойти большую часть накладных расходов на кэш страниц ОС, предпочитая управление самостоятельно. innodb_buffer_pool_size определяет объём оперативной памяти, используемый для этого кэша. На выделенных серверах баз данных этот размер часто составляет 70 %+ от общего объёма оперативной памяти.
Он делит это пространство на несколько подэкземпляров буфера, каждый из которых поддерживает двухчастный список LRU-страниц: список новых страниц и список старых страниц. Новые страницы попадают в старый список и должны сохраняться без вытеснения в течение определённого времени (innodb_old_blocks_time), прежде чем им будет разрешено попасть в список новых страниц. Это предотвращает перегрузку при массовых операциях, таких как сканирование таблиц.
Postgres применяет подход, реализующий относительно более простой кэш, полагаясь при этом на кэш страниц ОС для управления загрузкой и извлечением страниц из оперативной памяти. Структура shared_buffers управляет размером и часто устанавливается на уровне ~30% от доступной оперативной памяти, оставляя достаточно места для кэша страниц ОС.
Postgres использует алгоритм «часовой очистки» для вытеснения. Каждая страница в shared_buffers ведёт счётчик, который увеличивается при использовании (до определённого предела) и уменьшается при заполнении. Когда счётчик ссылок достигает нуля, страница может быть заменена другой страницей.
Telegram
METANIT.COM
Иллюстрация к предыдущему посту
❤8🔥1👏1
Вице-президент по безопасности компании Anchore Джош Брессерс проанализировал данные проекта ecosystems и пришёл к выводу, что большинство опенсорс-проектов поддерживается одиночными разработчиками.
ecosystems каталогизирует проекты с открытым исходным кодом. Сейчас в базе данных сайта насчитывается 11,8 млн проектов. Около 7 млн из них разработчики поддерживают в одиночку. Существуют проекты и с сотнями сопровождающих, но их число гораздо ниже.
На основе анализа проектов NPM выяснилось, что множество проектов созданы одним человеком. Если говорить о пакетах с более чем 1 млн загрузок в этом месяце, то у половины из них всего один сопровождающий. Таким образом, примерно половину из 13 тысяч самых скачиваемых пакетов NPM курируют разработчики-одиночки.
Всего в экосистеме NPM с 4 млн проектов насчитали около 900 тысяч сопровождающих.
https://opensourcesecurity.io/2025/08-oss-one-person/
На первом графике количество проектов и количетсво их поддерживающих, второй график - для пакетов с более 1 млн загрузок
ecosystems каталогизирует проекты с открытым исходным кодом. Сейчас в базе данных сайта насчитывается 11,8 млн проектов. Около 7 млн из них разработчики поддерживают в одиночку. Существуют проекты и с сотнями сопровождающих, но их число гораздо ниже.
На основе анализа проектов NPM выяснилось, что множество проектов созданы одним человеком. Если говорить о пакетах с более чем 1 млн загрузок в этом месяце, то у половины из них всего один сопровождающий. Таким образом, примерно половину из 13 тысяч самых скачиваемых пакетов NPM курируют разработчики-одиночки.
Всего в экосистеме NPM с 4 млн проектов насчитали около 900 тысяч сопровождающих.
https://opensourcesecurity.io/2025/08-oss-one-person/
На первом графике количество проектов и количетсво их поддерживающих, второй график - для пакетов с более 1 млн загрузок
❤🔥9👏4🐳4
REST vs GraphQL
(продолжение предыдущего поста)
Что такое RESTful API?
Representational State Transfer (REST) — это архитектурный стиль для создания API. Он использует HTTP-методы, такие как GET, POST, PUT и DELETE, для взаимодействия с ресурсами, которые идентифицируются по URL-адресам.
Как работает REST
* Клиент отправляет HTTP-запрос на определённый эндпоинт (например, /users).
* Сервер обрабатывает запрос и возвращает ответ в формате JSON или XML.
* Каждый запрос является независимым и не сохраняет состояние.
Преимущества REST
* Простота и широкое распространение.
* Использование стандартных HTTP-методов.
* Лёгкость масштабирования и кэширования.
* Хорошая совместимость с веб- и мобильными приложениями.
Недостатки REST
* Избыточный запрос данных: клиенты могут получать больше данных, чем необходимо.
* Недостаточный запрос данных: может потребоваться несколько запросов для получения всех необходимых данных.
Что такое GraphQL?
GraphQL — это язык запросов для API, разработанный компанией Facebook. Он позволяет клиентам запрашивать именно те данные, которые им необходимы с сервера.
Как работает GraphQL
* Клиент отправляет запрос, указывая точные необходимые поля.
* Сервер отвечает только запрошенными данными в структурированном формате.
* Один запрос может получить данные из нескольких источников.
Преимущества GraphQL
* Отсутствие избыточного или недостаточного запроса данных.
* Гибкие и эффективные запросы.
* Строго типизированная схема для валидации.
* Отлично подходит для сложных приложений.
Недостатки GraphQL
* Более сложная реализация.
* Требует настройки схемы.
* Кэширование сложнее по сравнению с REST.
REST против GraphQL
* REST: ориентирован на ресурсы, использует несколько эндпоинтов.
* GraphQL: ориентирован на запросы, использует один эндпоинт.
* REST: может требовать несколько вызовов для получения сложных данных.
* GraphQL: получает все необходимые данные за один запрос.
(продолжение предыдущего поста)
Что такое RESTful API?
Representational State Transfer (REST) — это архитектурный стиль для создания API. Он использует HTTP-методы, такие как GET, POST, PUT и DELETE, для взаимодействия с ресурсами, которые идентифицируются по URL-адресам.
Как работает REST
* Клиент отправляет HTTP-запрос на определённый эндпоинт (например, /users).
* Сервер обрабатывает запрос и возвращает ответ в формате JSON или XML.
* Каждый запрос является независимым и не сохраняет состояние.
Преимущества REST
* Простота и широкое распространение.
* Использование стандартных HTTP-методов.
* Лёгкость масштабирования и кэширования.
* Хорошая совместимость с веб- и мобильными приложениями.
Недостатки REST
* Избыточный запрос данных: клиенты могут получать больше данных, чем необходимо.
* Недостаточный запрос данных: может потребоваться несколько запросов для получения всех необходимых данных.
Что такое GraphQL?
GraphQL — это язык запросов для API, разработанный компанией Facebook. Он позволяет клиентам запрашивать именно те данные, которые им необходимы с сервера.
Как работает GraphQL
* Клиент отправляет запрос, указывая точные необходимые поля.
* Сервер отвечает только запрошенными данными в структурированном формате.
* Один запрос может получить данные из нескольких источников.
Преимущества GraphQL
* Отсутствие избыточного или недостаточного запроса данных.
* Гибкие и эффективные запросы.
* Строго типизированная схема для валидации.
* Отлично подходит для сложных приложений.
Недостатки GraphQL
* Более сложная реализация.
* Требует настройки схемы.
* Кэширование сложнее по сравнению с REST.
REST против GraphQL
* REST: ориентирован на ресурсы, использует несколько эндпоинтов.
* GraphQL: ориентирован на запросы, использует один эндпоинт.
* REST: может требовать несколько вызовов для получения сложных данных.
* GraphQL: получает все необходимые данные за один запрос.
Telegram
METANIT.COM
REST vs GraphQL
(продолжение в следующем посте)
(продолжение в следующем посте)
👍10❤8👏1
Управление доступом в Linux
Когда пользователь входит в систему, процесс аутентификации устанавливает идентификатор пользователя (UID) и идентификатор группы (GID), а также запускает оболочку пользователя.
Процесс bash
Процесс оболочки (bash) имеет набор идентификаторов, которые используются в его структуре. Эти идентификаторы наследуются его дочерними процессами.
Типы идентификаторов
- Реальный: UID и GID — это пользователь и группа, владеющие процессом.
- Эффективный: EUID и EGID — используются ядром для контроля доступа к объектам, не являющимся файлами.
- Сохранённый: SUID и SGID — сохраняют исходный EUID, позволяя привилегированному процессу переключиться обратно.
- Файловая система: FSID и FSGID — используются ядром для контроля доступа к файловым объектам (обычно те же, что и EUID/EGID).
- Дополнительные GID: GID, используемые для файлового доступа.
Когда пользователь входит в систему, процесс аутентификации устанавливает идентификатор пользователя (UID) и идентификатор группы (GID), а также запускает оболочку пользователя.
Процесс bash
Процесс оболочки (bash) имеет набор идентификаторов, которые используются в его структуре. Эти идентификаторы наследуются его дочерними процессами.
Типы идентификаторов
- Реальный: UID и GID — это пользователь и группа, владеющие процессом.
- Эффективный: EUID и EGID — используются ядром для контроля доступа к объектам, не являющимся файлами.
- Сохранённый: SUID и SGID — сохраняют исходный EUID, позволяя привилегированному процессу переключиться обратно.
- Файловая система: FSID и FSGID — используются ядром для контроля доступа к файловым объектам (обычно те же, что и EUID/EGID).
- Дополнительные GID: GID, используемые для файлового доступа.
👍7🔥3🥰1
Руководитель Nvidia Дженсен Хуанг в интервью высказал мнение, что ИИ "вероятно" приведет к четырехдневной рабочей неделе. Его логика — как и в прошлые индустриальные революции, рост производительности меняет социальные привычки, поэтому мы уже видели переход с 7 на 6, а затем на 5 дней. Благодаря автоматизации экономика и производительность вырастут.
При этом Хуанг считает, что в оставшиеся 4 рабочих дня люди станут даже более "занятыми", чем сейчас. ИИ будет брать на себя значительную часть рутины, поэтому работники смогут чаще и быстрее браться за новые идеи.
Хуанг предупреждает, что ИИ поменяет почти каждую профессию, причем некоторые исчезнут полностью, но на их место придут другие. Он уверен, что качество жизни в любом случае со временем улучшится.
https://www.foxbusiness.com/video/6377597758112
При этом Хуанг считает, что в оставшиеся 4 рабочих дня люди станут даже более "занятыми", чем сейчас. ИИ будет брать на себя значительную часть рутины, поэтому работники смогут чаще и быстрее браться за новые идеи.
Хуанг предупреждает, что ИИ поменяет почти каждую профессию, причем некоторые исчезнут полностью, но на их место придут другие. Он уверен, что качество жизни в любом случае со временем улучшится.
https://www.foxbusiness.com/video/6377597758112
Fox Business
Nvidia CEO: We are at the beginning of the AI revolution | Fox Business Video
Nvidia co-founder and CEO Jensen Huang explains the development of the technology on 'The Claman Countdown.'
🤡27👍9🤷♂3🌭3🙈3❤1
Добавлена новая статья про Локализацию приложений Android на разные языки
https://metanit.com/kotlin/jetpack/11.6.php
#kotlin #android #compose
https://metanit.com/kotlin/jetpack/11.6.php
#kotlin #android #compose
❤8
В кампусе Microsoft в Кремниевой долине скончался 35-летний инженер программного обеспечения Пратик Пандей. По словам его семьи, мужчина часто работал допоздна и много перерабатывал. Судмедэксперты пока не установили причину гибели Пандея.
Microsoft отказалась комментировать сообщение о смерти своего инженера на рабочем месте и продолжает расследование кончины сотрудника.
Пандей работал над продуктом Microsoft Fabric, который используется для анализа данных. Специалист присоединился к Microsoft в 2020 году, а до этого он работал в Walmart, Apple и других компаниях.
https://www.bloomberg.com/news/articles/2025-08-28/microsoft-engineer-pratik-pandey-dies-on-silicon-valley-campus
Microsoft отказалась комментировать сообщение о смерти своего инженера на рабочем месте и продолжает расследование кончины сотрудника.
Пандей работал над продуктом Microsoft Fabric, который используется для анализа данных. Специалист присоединился к Microsoft в 2020 году, а до этого он работал в Walmart, Apple и других компаниях.
https://www.bloomberg.com/news/articles/2025-08-28/microsoft-engineer-pratik-pandey-dies-on-silicon-valley-campus
Bloomberg.com
Microsoft Software Engineer Dies on Silicon Valley Campus at 35
A 35-year-old Microsoft Corp. software engineer has died at the company’s Silicon Valley campus.
🫡45🤯11😢8❤3
Задержка убивает приложение
(продолжение предыдущего поста)
5 проверенных способов для снижения задержки:
1. Оптимизируйте запросы к базе данных
Один плохо написанный запрос может добавить 500 мс задержки, и вы даже не заметите этого. Умножьте это на тысячи запросов — и получите катастрофу.
Медленные запросы = медленный продукт.
* Прекратите использовать SELECT *.
* Добавьте индексы.
* Избавьтесь от проблемы N+1.
* Измеряйте, не гадайте (EXPLAIN — ваш лучший инструмент).
2. Сократите сетевые переходы
Каждый раз, когда запрос проходит через Service A → Service B → Service C → Service D...
Вы добавляете задержку.
* Объединяйте мелкие сервисы там, где это имеет смысл.
* Проверьте подход backend-for-frontend (BFF).
3. Кешируйте часто используемые данные
Если данные не меняются, зачем запрашивать их снова?
Держите их в памяти. Подходящие инструменты: cессииа, каталоги, конфигурация. Отправляйте быстро.
Устаревший кеш — это плохо. Но чаще отсутствие кеша — ещё хуже.
4. Группируйте и параллелизуйте запросы
Задержка накапливается, когда вы отправляете несколько маленьких запросов последовательно.
Не делайте 10 запросов для 10 элементов.
Группируйте их.
Или используйте параллельные запросы.
Меньше запросов. Быстрые результаты.
5. Сократите передачу данных
Отправка избыточных данных — это как доставка грузовика, когда нужен только рюкзак.
* Удалите неиспользуемые поля.
* Сжимайте ответы.
* Используйте пагинацию.
* Оптимизируйте изображения.
(продолжение предыдущего поста)
5 проверенных способов для снижения задержки:
1. Оптимизируйте запросы к базе данных
Один плохо написанный запрос может добавить 500 мс задержки, и вы даже не заметите этого. Умножьте это на тысячи запросов — и получите катастрофу.
Медленные запросы = медленный продукт.
* Прекратите использовать SELECT *.
* Добавьте индексы.
* Избавьтесь от проблемы N+1.
* Измеряйте, не гадайте (EXPLAIN — ваш лучший инструмент).
2. Сократите сетевые переходы
Каждый раз, когда запрос проходит через Service A → Service B → Service C → Service D...
Вы добавляете задержку.
* Объединяйте мелкие сервисы там, где это имеет смысл.
* Проверьте подход backend-for-frontend (BFF).
3. Кешируйте часто используемые данные
Если данные не меняются, зачем запрашивать их снова?
Держите их в памяти. Подходящие инструменты: cессииа, каталоги, конфигурация. Отправляйте быстро.
Устаревший кеш — это плохо. Но чаще отсутствие кеша — ещё хуже.
4. Группируйте и параллелизуйте запросы
Задержка накапливается, когда вы отправляете несколько маленьких запросов последовательно.
Не делайте 10 запросов для 10 элементов.
Группируйте их.
Или используйте параллельные запросы.
Меньше запросов. Быстрые результаты.
5. Сократите передачу данных
Отправка избыточных данных — это как доставка грузовика, когда нужен только рюкзак.
* Удалите неиспользуемые поля.
* Сжимайте ответы.
* Используйте пагинацию.
* Оптимизируйте изображения.
Telegram
METANIT.COM
Задержка убивает приложение
(продолжение в следующем посте)
(продолжение в следующем посте)
👏13👍7🔥4❤3⚡2😁1🤓1