5 механизмов межпроцессного взаимодействия (IPC)
IPC — это фундаментальная концепция в *nix-подобных ОС, которая позволяет процессам обмениваться данными.
1️⃣ Pipe — механизм межпроцессного взаимодействия, использующий общий файловый дескриптор, что позволяет одному процессу записывать данные, которые может прочитать другой процесс.
cat /var/log/syslog | grep 'error' | less
2️⃣ Message Queue: позволяют процессам обмениваться сообщениями в порядке FIFO. Она полезна в сценариях, где требуется асинхронное взаимодействие.
3️⃣ Signal: используется для уведомления процесса о наступлении определённого события.
4️⃣ Semaphore: используется для контроля доступа к общему ресурсу несколькими процессами.
5️⃣ Shared Memory: позволяет обеспечить нескольким процессам доступ к одному и тому же пространству памяти.
IPC — это фундаментальная концепция в *nix-подобных ОС, которая позволяет процессам обмениваться данными.
1️⃣ Pipe — механизм межпроцессного взаимодействия, использующий общий файловый дескриптор, что позволяет одному процессу записывать данные, которые может прочитать другой процесс.
cat /var/log/syslog | grep 'error' | less
2️⃣ Message Queue: позволяют процессам обмениваться сообщениями в порядке FIFO. Она полезна в сценариях, где требуется асинхронное взаимодействие.
3️⃣ Signal: используется для уведомления процесса о наступлении определённого события.
4️⃣ Semaphore: используется для контроля доступа к общему ресурсу несколькими процессами.
5️⃣ Shared Memory: позволяет обеспечить нескольким процессам доступ к одному и тому же пространству памяти.
Хотите изучить C++ с нуля или задумываетесь о переходе на него?
Ждём вас на открытом практическом уроке «Функции, стек и рекурсия в C++» от OTUS, где мы:
- поговорим о том, как реализован вызов функции;
- узнаем, что из себя представляет стек и как он задействован в этом процессе;
- обсудим способы передачи параметров в функцию в C++ и поймем, почему их так много;
- познакомимся с рекурсивными функциями, решая классическую задачу о Ханойских башнях;
- узнаем, почему обычно стоит избегать активного использования рекурсии.
Спикер Андрей Рыжиков — опытный разработчик в НИИ обработки аэрокосмических изображений.
⏰ Встречаемся 4 июня в 20:00 мск в преддверии старта курса «Специализация C++ Developer». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS!
➡ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок.
Ждём вас на открытом практическом уроке «Функции, стек и рекурсия в C++» от OTUS, где мы:
- поговорим о том, как реализован вызов функции;
- узнаем, что из себя представляет стек и как он задействован в этом процессе;
- обсудим способы передачи параметров в функцию в C++ и поймем, почему их так много;
- познакомимся с рекурсивными функциями, решая классическую задачу о Ханойских башнях;
- узнаем, почему обычно стоит избегать активного использования рекурсии.
Спикер Андрей Рыжиков — опытный разработчик в НИИ обработки аэрокосмических изображений.
⏰ Встречаемся 4 июня в 20:00 мск в преддверии старта курса «Специализация C++ Developer». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS!
➡ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок.
Node.js for Beginners: A comprehensive guide to building efficient, full-featured web applications with Node.js
Автор: Ulises Gascón (2024)
Сначала вы изучите основы Node.js и освежите свои знания JavaScript, а затем перейдете к разработке современных веб-приложений с использованием Node.js, Express.js и MongoDB. Вы изучите такие сложные темы, как асинхронное программирование, библиотеки npm, событийно-ориентированные шаблоны для HTTP-серверов, RESTful API, JSON Web Tokens и многое другое. В заключительных главах вы пройдете через процесс развертывания и узнаете о различных стратегиях, включая установку на пустом металле, виртуальные машины и контейнеризацию с помощью Docker. Вы также узнаете, как использовать Process Manager 2 (PM2) для эффективного управления процессами.
Автор: Ulises Gascón (2024)
Сначала вы изучите основы Node.js и освежите свои знания JavaScript, а затем перейдете к разработке современных веб-приложений с использованием Node.js, Express.js и MongoDB. Вы изучите такие сложные темы, как асинхронное программирование, библиотеки npm, событийно-ориентированные шаблоны для HTTP-серверов, RESTful API, JSON Web Tokens и многое другое. В заключительных главах вы пройдете через процесс развертывания и узнаете о различных стратегиях, включая установку на пустом металле, виртуальные машины и контейнеризацию с помощью Docker. Вы также узнаете, как использовать Process Manager 2 (PM2) для эффективного управления процессами.
This media is not supported in your browser
VIEW IN TELEGRAM
🧊 Робот от компании Mitsubishi Electric собрал кубик Рубика за 0,305 секунды
Человеческий рекорд — 3,13 секунды.
Человеческий рекорд — 3,13 секунды.
Для того, чтобы писать качественные и "шустрые" приложения, недостаточно выучить язык программирования. Вам нужно чётко понимать, каким образом ваш код преобразуется в инструкции для центрального процессора.
🔹 Приглашаем на открытый урок «Системные вызовы и прерывания» 3 июня в 20:00.
Где рассмотрим, абстракции ОС для разделения на пространство пользователя и пространство ядра, механизм взаимодействия программного кода с процессором, какие есть виды прерываний и как их используют.
✅ Разберем "как устроены исполняемые файлы"
Рассмотрим структуру исполняемых файлов в ОС windows и linux, как они устроены и как ОС исполняет код программы.
Регистрация: https://vk.cc/cxikPp
🔹 Приглашаем на открытый урок «Системные вызовы и прерывания» 3 июня в 20:00.
Где рассмотрим, абстракции ОС для разделения на пространство пользователя и пространство ядра, механизм взаимодействия программного кода с процессором, какие есть виды прерываний и как их используют.
✅ Разберем "как устроены исполняемые файлы"
Рассмотрим структуру исполняемых файлов в ОС windows и linux, как они устроены и как ОС исполняет код программы.
Регистрация: https://vk.cc/cxikPp
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruThis media is not supported in your browser
VIEW IN TELEGRAM
Как передать значение shadcn/ui Date Picker в server action в Next.js
Все мои детальки: переход на отечественные микроконтроллеры
Идея использовать отечественные микроконтроллеры для разработки у меня была давно, но изобилие и доступность зарубежных решений давали возможность лениться в этом направлении. Сейчас происходит активно импортозамещение во многих областях, поэтому, считаю, стоит разобраться, что может предоставить отечественная элементная база в интересующих сферах.
https://habr.com/ru/articles/815269/
Идея использовать отечественные микроконтроллеры для разработки у меня была давно, но изобилие и доступность зарубежных решений давали возможность лениться в этом направлении. Сейчас происходит активно импортозамещение во многих областях, поэтому, считаю, стоит разобраться, что может предоставить отечественная элементная база в интересующих сферах.
https://habr.com/ru/articles/815269/
Трюк из линейной алгебры для быстрого нахождения чисел Фибоначчи
Я участвовал в онлайн-группе чтения книги Thirty-three Miniatures: Mathematical and Algorithmic Applications of Linear Algebra математика Иржи Матушека. Это самая нетрадиционная книга о математике, с которой мне приходилось сталкиваться. Первые две главы посвящены способам быстрого нахождения чисел Фибоначчи. Традиционный, или итеративный метод нахождения чисел Фибоначчи (основанный на хранении промежуточных значений в памяти), который мы изучали на курсах программирования, линеен по времени. Но в книге представлена методика их вычисления приблизительно с логарифмической временной сложностью. Возможно, кто-то из вас знает эту методику, но для меня она была новой, и я решил, что ею стоит поделиться.
https://habr.com/ru/companies/ruvds/articles/773566/
original https://blog.codingconfessions.com/p/a-linear-algebra-trick-for-fibonacci-numbers
Я участвовал в онлайн-группе чтения книги Thirty-three Miniatures: Mathematical and Algorithmic Applications of Linear Algebra математика Иржи Матушека. Это самая нетрадиционная книга о математике, с которой мне приходилось сталкиваться. Первые две главы посвящены способам быстрого нахождения чисел Фибоначчи. Традиционный, или итеративный метод нахождения чисел Фибоначчи (основанный на хранении промежуточных значений в памяти), который мы изучали на курсах программирования, линеен по времени. Но в книге представлена методика их вычисления приблизительно с логарифмической временной сложностью. Возможно, кто-то из вас знает эту методику, но для меня она была новой, и я решил, что ею стоит поделиться.
https://habr.com/ru/companies/ruvds/articles/773566/
original https://blog.codingconfessions.com/p/a-linear-algebra-trick-for-fibonacci-numbers
🚀 Поднимите свой опыт frontend-разработки на новый уровень.
Приглашаем на вебинар: "Преимущества семантической верстки"
На открытом уроке вы получите ценные знания:
- Семантические теги: изучите строительные блоки HTML5.
- Влияние на сайт: постигните, как правильное использование тегов улучшает SEO и доступность сайта.
- Применение на практике: получите навыки, которые сможете применять в реальных проектах.
👩💻 Наш спикер, Анна Русяева – опытный веб-разработчик, поделится с вами лайфхаками и секретами мастерства.
📆 4 июня, 19:00 мск - отметьте дату в своем календаре!
🔑 Специальная цена на курс «Fullstack developer» для участников - расширьте свои возможности в IT с уникальным предложением.
=======
✨ Не упустите возможность! Регистрируйтесь сейчас https://otus.pw/lfGD/?erid=2Vtzquh9XKc
=======
🎁 Все участники online-трансляции получат в подарок 3 бесплатных урока, и полезные материалы для начинающих.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Приглашаем на вебинар: "Преимущества семантической верстки"
На открытом уроке вы получите ценные знания:
- Семантические теги: изучите строительные блоки HTML5.
- Влияние на сайт: постигните, как правильное использование тегов улучшает SEO и доступность сайта.
- Применение на практике: получите навыки, которые сможете применять в реальных проектах.
👩💻 Наш спикер, Анна Русяева – опытный веб-разработчик, поделится с вами лайфхаками и секретами мастерства.
📆 4 июня, 19:00 мск - отметьте дату в своем календаре!
🔑 Специальная цена на курс «Fullstack developer» для участников - расширьте свои возможности в IT с уникальным предложением.
=======
✨ Не упустите возможность! Регистрируйтесь сейчас https://otus.pw/lfGD/?erid=2Vtzquh9XKc
=======
🎁 Все участники online-трансляции получат в подарок 3 бесплатных урока, и полезные материалы для начинающих.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
72 вопроса и ответа на интервью по SQL (ENG)
Почти все крупные представители технологической индустрии, такие как Uber, Netflix, Airbnb и т.д., используют SQL. В этом блоге перечислены все лучшие вопросы для собеседования по SQL.
https://intellipaat.com/blog/interview-question/sql-interview-questions/
#SQL
Почти все крупные представители технологической индустрии, такие как Uber, Netflix, Airbnb и т.д., используют SQL. В этом блоге перечислены все лучшие вопросы для собеседования по SQL.
https://intellipaat.com/blog/interview-question/sql-interview-questions/
#SQL
Как потреблять API с ограничением по RPS в .NET приложениях
Однажды каждый C# программист получает на работе задачу по разработке интеграции с внешней системой, где ограничена максимальная частота запросов в секунду.
Интернет яростно сопротивлялся предоставить мне инструкцию к написанию такого кода, закидывая туториалами по настройке ограничения RPS на сервере, а не клиенте.
Но теперь на Хабре есть эта статья, которая научит отправлять запросы из HttpClient так, чтобы не получать 429 Too Many Requests.
https://habr.com/ru/companies/ruvds/articles/804025/
Однажды каждый C# программист получает на работе задачу по разработке интеграции с внешней системой, где ограничена максимальная частота запросов в секунду.
Интернет яростно сопротивлялся предоставить мне инструкцию к написанию такого кода, закидывая туториалами по настройке ограничения RPS на сервере, а не клиенте.
Но теперь на Хабре есть эта статья, которая научит отправлять запросы из HttpClient так, чтобы не получать 429 Too Many Requests.
https://habr.com/ru/companies/ruvds/articles/804025/
🟢 Хотите прокачаться в разработке на С++?
Ждём вас на открытом практическом уроке «Условные переменные в С++» от OTUS, где мы разберем:
— что такое std::condition_variable и какие задачи он решает;
— типовые ошибки при его использовании;
— что такое spurious wakeup.
А также напишем несколько concurrency-примитивов на основе condition_variable.
🙋♂️Спикер — ведущий программист с большим международным опытом.
⏰ Встречаемся 11 июня в 20:00 мск в преддверии старта курса «C++ Developer. Professional». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS!
➡ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок.
Ждём вас на открытом практическом уроке «Условные переменные в С++» от OTUS, где мы разберем:
— что такое std::condition_variable и какие задачи он решает;
— типовые ошибки при его использовании;
— что такое spurious wakeup.
А также напишем несколько concurrency-примитивов на основе condition_variable.
🙋♂️Спикер — ведущий программист с большим международным опытом.
⏰ Встречаемся 11 июня в 20:00 мск в преддверии старта курса «C++ Developer. Professional». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS!
➡ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок.
Вы все еще пишете многопоточку на C++ с ошибками синхронизации?
Привет, коллеги! В этой статье я покажу свой подход к написанию многопоточного кода, который помогает избежать типовых ошибок, связанных с использованием базовых примитивов синхронизации.
Демонстрация идеи будет проходить на живых примерах кода на современном C++. Большинство описанных решений я применял сначала на собственных проектах, а теперь часть этих подходов уже используется в нашей собственной микроядерной операционной системе «Лаборатории Касперского» (KasperskyOS).
https://habr.com/ru/companies/kaspersky/articles/805365/
Привет, коллеги! В этой статье я покажу свой подход к написанию многопоточного кода, который помогает избежать типовых ошибок, связанных с использованием базовых примитивов синхронизации.
Демонстрация идеи будет проходить на живых примерах кода на современном C++. Большинство описанных решений я применял сначала на собственных проектах, а теперь часть этих подходов уже используется в нашей собственной микроядерной операционной системе «Лаборатории Касперского» (KasperskyOS).
https://habr.com/ru/companies/kaspersky/articles/805365/
Хабр
Вы все еще пишете многопоточку на C++ с ошибками синхронизации?
Привет, коллеги! В этой статье я покажу свой подход к написанию многопоточного кода, который помогает избежать типовых ошибок, связанных с использованием базовых примитивов синхронизации. Демонстрация...
Изучайте Full Stack Development и получайте бесплатные сертификаты
🔸HTML and CSS
https://freecodecamp.org/learn/2022/responsive-web-design/
🔸JavaScript
https://scaler.com/topics/course/javascript-beginners/
🔸Python
http://cs50.harvard.edu/python/
🔸 MySQL
https://scaler.com/topics/course/sql-using-mysql-course/
🔸 MongoDB
http://learn.mongodb.com/learning-paths/introduction-to-mongodb
🔸 Node.js
https://scaler.com/topics/course/nodejs/
🔸 React
https://upgrad.com/free-courses/
🔸 Java
https://scaler.com/topics/course/java-beginners/
🔸 Git
http://learn.microsoft.com/training/paths/intro-to-vc-git/
🔸 DSA
http://learn.saylor.org/course/view.php?id=66
🔸Meta Back-End Developer Professional Certificate
https://www.coursera.org/professional-certificates/meta-back-end-developer
🔸Become Full Stack Developer
https://mygreatlearning.com/academy/learn-for-free/courses/become-full-stack-developer
🔸Full-Stack Development 101: What is Full-Stack Development ?
https://simplilearn.com/learn-full-stack-development-f...
🔸HTML and CSS
https://freecodecamp.org/learn/2022/responsive-web-design/
🔸JavaScript
https://scaler.com/topics/course/javascript-beginners/
🔸Python
http://cs50.harvard.edu/python/
🔸 MySQL
https://scaler.com/topics/course/sql-using-mysql-course/
🔸 MongoDB
http://learn.mongodb.com/learning-paths/introduction-to-mongodb
🔸 Node.js
https://scaler.com/topics/course/nodejs/
🔸 React
https://upgrad.com/free-courses/
🔸 Java
https://scaler.com/topics/course/java-beginners/
🔸 Git
http://learn.microsoft.com/training/paths/intro-to-vc-git/
🔸 DSA
http://learn.saylor.org/course/view.php?id=66
🔸Meta Back-End Developer Professional Certificate
https://www.coursera.org/professional-certificates/meta-back-end-developer
🔸Become Full Stack Developer
https://mygreatlearning.com/academy/learn-for-free/courses/become-full-stack-developer
🔸Full-Stack Development 101: What is Full-Stack Development ?
https://simplilearn.com/learn-full-stack-development-f...
⚡️ Учись программировать на Solidity и создавать инновационные блокчейн-решения!
Пройди короткий тест и проверь, можешь ли ты осилить программирование на Solidity.
Ответишь успешно на все вопросы — сможешь попасть на продвинутый курс "Solidity Developer" от OTUS по специальной цене!
➡️ ПРОЙТИ ТЕСТ: https://vk.cc/cxsgFM
🎁 Бонусом за прохождение теста, получишь бесплатный доступ к записям открытых вебинаров курса уже сейчас!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Пройди короткий тест и проверь, можешь ли ты осилить программирование на Solidity.
Ответишь успешно на все вопросы — сможешь попасть на продвинутый курс "Solidity Developer" от OTUS по специальной цене!
➡️ ПРОЙТИ ТЕСТ: https://vk.cc/cxsgFM
🎁 Бонусом за прохождение теста, получишь бесплатный доступ к записям открытых вебинаров курса уже сейчас!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
This media is not supported in your browser
VIEW IN TELEGRAM
10 основных компонентов веб-приложения в продакшене
🔵- Все начинается с конвейеров CI/CD, которые разворачивают код на серверных инстансах. Такие инструменты, как Jenkins и GitHub, помогают в этом.
🔵- Пользовательские запросы исходят из веб-браузера. После разрешения DNS запросы достигают серверов приложений.
🔵- Балансировщики нагрузки и обратные прокси (такие как Nginx и HAProxy) равномерно распределяют пользовательские запросы между серверами веб-приложений.
🔵- Запросы также могут обслуживаться сетью доставки контента (CDN).
🔵- Веб-приложение взаимодействует с бекенд-сервисами через API.
🔵- Бекенд-сервисы взаимодействуют с серверами баз данных или распределенными кэшами для предоставления данных.
🔵- Ресурсоемкие и длительные задачи отправляются рабочим процессам с использованием очереди заданий.
🔵- Сервис полнотекстового поиска поддерживает функциональность поиска. Здесь могут помочь такие инструменты, как Elasticsearch и Apache Solr.
🔵- Инструменты мониторинга (такие как Sentry, Grafana и Prometheus) х...
🔵- Все начинается с конвейеров CI/CD, которые разворачивают код на серверных инстансах. Такие инструменты, как Jenkins и GitHub, помогают в этом.
🔵- Пользовательские запросы исходят из веб-браузера. После разрешения DNS запросы достигают серверов приложений.
🔵- Балансировщики нагрузки и обратные прокси (такие как Nginx и HAProxy) равномерно распределяют пользовательские запросы между серверами веб-приложений.
🔵- Запросы также могут обслуживаться сетью доставки контента (CDN).
🔵- Веб-приложение взаимодействует с бекенд-сервисами через API.
🔵- Бекенд-сервисы взаимодействуют с серверами баз данных или распределенными кэшами для предоставления данных.
🔵- Ресурсоемкие и длительные задачи отправляются рабочим процессам с использованием очереди заданий.
🔵- Сервис полнотекстового поиска поддерживает функциональность поиска. Здесь могут помочь такие инструменты, как Elasticsearch и Apache Solr.
🔵- Инструменты мониторинга (такие как Sentry, Grafana и Prometheus) х...
Совет по java💡
Обычно при сортировке в
#java
Обычно при сортировке в
Spring Data мы указываем свойство, по которому хотим отсортировать, как строку. Однако существует класс TypedSort, который дает нам возможность передавать функцию в качестве параметра для сортировки. Это повышает безопасность типов в нашем коде.#java
Шпаргалка по REST API
🟣 Клиент-серверная архитектура
🟣 Взаимодействие без сохранения состояния
🟣 Возможность кэширования
🟣 Многоуровневая система
🟣 Поддержка кода по требованию
🟣 Унифицированный интерфейс
🟣 Клиент-серверная архитектура
🟣 Взаимодействие без сохранения состояния
🟣 Возможность кэширования
🟣 Многоуровневая система
🟣 Поддержка кода по требованию
🟣 Унифицированный интерфейс
Точное увеличение растровых изображений
Существует проблема?
Проведём эксперимент - возьмём небольшую чёткую картинку, на ней всё понятно (скрытых деталей мельче разрешения не наблюдается)
https://habr.com/ru/articles/812619/
Существует проблема?
Проведём эксперимент - возьмём небольшую чёткую картинку, на ней всё понятно (скрытых деталей мельче разрешения не наблюдается)
https://habr.com/ru/articles/812619/
This media is not supported in your browser
VIEW IN TELEGRAM
DebuggingLegacyPhpCode 😁