Вы все еще пишете многопоточку на 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 😁
🚀Готов врываться в разработку на С++? А с динамической памятью работать умеешь?
Приходи на открытый урок «Как песок сквозь пальцы: почему утекает динамически выделенная память и как с этим бороться?» от OTUS. Опытный эксперт разберет опасности сырых указателей в C++, инструменты для нахождения ошибок в работе с памятью, идиому RAII и многое другое.
⏰ Встречаемся 20 июня в 20:00 мск. Всем участникам дадим скидку на большое обучение.
➡ Регистрируйтесь прямо сейчас, чтобы занять место на открытом уроке и получить запись: РЕГИСТРАЦИЯ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Приходи на открытый урок «Как песок сквозь пальцы: почему утекает динамически выделенная память и как с этим бороться?» от OTUS. Опытный эксперт разберет опасности сырых указателей в C++, инструменты для нахождения ошибок в работе с памятью, идиому RAII и многое другое.
⏰ Встречаемся 20 июня в 20:00 мск. Всем участникам дадим скидку на большое обучение.
➡ Регистрируйтесь прямо сейчас, чтобы занять место на открытом уроке и получить запись: РЕГИСТРАЦИЯ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
UB or not UB: дублируем элемент std::vector
В статье выясним, можно ли с точки зрения стандарта языка C++ тривиальным вызовом
https://habr.com/ru/articles/816681/
В статье выясним, можно ли с точки зрения стандарта языка C++ тривиальным вызовом
push_back продублировать элемент std::vector. Отвечая на простой вопрос, столкнемся с более интересными: что собой представляет внутренний мир вектора, как "протухают" итераторы при реаллокации, какие ограничения добавляют гарантии безопасности относительно исключений...https://habr.com/ru/articles/816681/
⁉ Как разработчику на С++ организовать кроссплатформенную разработку?
Приходите на практический открытый урок от OTUS, где вы:
- узнаете, как решить проблему поиска зависимостей;
- напишите conan-файл;
- сможете организовать свой сервер пакетов в своей экосистеме CI/CD;
- получите ответы на все возникающие вопросы.
👨🎓Спикер — тимлид команды в отделе рекламных технологий и социальных механик в одном из крупнейших российских банков.
⏰ Встречаемся 24 июня в 20:00 мск в преддверии старта курса «C++ Developer. Professional». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS!
➡ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: РЕГИСТРАЦИЯ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Приходите на практический открытый урок от OTUS, где вы:
- узнаете, как решить проблему поиска зависимостей;
- напишите conan-файл;
- сможете организовать свой сервер пакетов в своей экосистеме CI/CD;
- получите ответы на все возникающие вопросы.
👨🎓Спикер — тимлид команды в отделе рекламных технологий и социальных механик в одном из крупнейших российских банков.
⏰ Встречаемся 24 июня в 20:00 мск в преддверии старта курса «C++ Developer. Professional». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS!
➡ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: РЕГИСТРАЦИЯ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Как проклятие невидимой стены ждало меня 20 лет
Когда на меня накатывает хандра, я бросаю всё и пилю свой игровой движок. Это неблагодарное занятие, но меня прёт.
В самом начале у меня были такие планы: вжух-вжух, щас возьму ведро, накидаю туда всяких библиотек для графики, физики и звуков, добавлю сетевую библиотеку по вкусу, перемешаю всё с какой-нибудь системой сообщений, и готово. Приключение на 15 минут.
И вот я тут спустя 5 лет.
Ладно, если быть честным, то я почти не уделял времени разработке, потому что постоянно спотыкался на всяких бесящих меня ошибках: то сериализация не работает с наследованием, то потоки не хотят нормально разделять память, то обновление языка ломало совместимость… Я могу, блин, целую Камасутру написать про соитие с игровым движком. Все эти ошибки сильно демотивируют, потому что хочется уже наконец-то заняться делом, а не ковыряться с байтиками.
https://habr.com/ru/companies/timeweb/articles/774070/
Когда на меня накатывает хандра, я бросаю всё и пилю свой игровой движок. Это неблагодарное занятие, но меня прёт.
В самом начале у меня были такие планы: вжух-вжух, щас возьму ведро, накидаю туда всяких библиотек для графики, физики и звуков, добавлю сетевую библиотеку по вкусу, перемешаю всё с какой-нибудь системой сообщений, и готово. Приключение на 15 минут.
И вот я тут спустя 5 лет.
Ладно, если быть честным, то я почти не уделял времени разработке, потому что постоянно спотыкался на всяких бесящих меня ошибках: то сериализация не работает с наследованием, то потоки не хотят нормально разделять память, то обновление языка ломало совместимость… Я могу, блин, целую Камасутру написать про соитие с игровым движком. Все эти ошибки сильно демотивируют, потому что хочется уже наконец-то заняться делом, а не ковыряться с байтиками.
https://habr.com/ru/companies/timeweb/articles/774070/
В 2002 году мир математики стал свидетелем исторического момента, когда российский математик Григорий Перельман представил первую из трех новаторских работ, представивших доказательство неуловимой гипотезы Пуанкаре. Эта гипотеза ставила в тупик математиков более столетия, что сделало ее одной из самых сложных нерешенных проблем в этой области.
Работа Перельмана была поистине революционной. Он успешно сориентировался в запутанном лабиринте топологии и в конечном итоге предоставил строгое и элегантное доказательство своей гипотезы. Его достижение потрясло математическое сообщество и сразу же привлекло внимание коллег и экспертов со всего мира.
В знак признания своих исключительных достижений Григорий Перельман был награжден престижной медалью Филдса в 2006 году, что считается высшей наградой в математике. Однако реакция Перельмана на эту похвалу была столь же нетрадиционной, как и его математическое путешествие. Совершив беспрецедентный шаг, он отказался от медали Филдса, избегая всеобщего внимания и тради...
Работа Перельмана была поистине революционной. Он успешно сориентировался в запутанном лабиринте топологии и в конечном итоге предоставил строгое и элегантное доказательство своей гипотезы. Его достижение потрясло математическое сообщество и сразу же привлекло внимание коллег и экспертов со всего мира.
В знак признания своих исключительных достижений Григорий Перельман был награжден престижной медалью Филдса в 2006 году, что считается высшей наградой в математике. Однако реакция Перельмана на эту похвалу была столь же нетрадиционной, как и его математическое путешествие. Совершив беспрецедентный шаг, он отказался от медали Филдса, избегая всеобщего внимания и тради...
✔️Готовы построить продукт, который будут обожать потребители? Тогда не пропустите этот вебинар!
Хотите понять поведение своих клиентов лучше, чем они сами? Планируете взять вершину рынка и держать планку? Хотите выстроить беспроигрышный маркетинг?
😎Hooked Model — это не просто модель. Это ключ к пониманию и успеху!
Записывайтесь на открытый урок, где мы раскроем все тайны Hooked Model. Мы разгадаем секреты спуска с горы, подъема на гору, плоской равнины и обрыва. Узнайте, какие психологические механизмы прячутся за этими словами и как вы можете использовать их в своей компании!
Спикер Дмитрий Шоржин — опытный предприниматель и менеджер, эксперт-консультант в сфере международного бизнеса, обладатель степени MBA.
➡️Встречаемся 27 июня в 20:00 мск в преддверии старта курса «CJE / Customer Journey Expert». Все участники вебинара получат специальную цену на обучение!
Регистрируйтесь сейчас: https://vk.cc/cxS6ci
Хотите понять поведение своих клиентов лучше, чем они сами? Планируете взять вершину рынка и держать планку? Хотите выстроить беспроигрышный маркетинг?
😎Hooked Model — это не просто модель. Это ключ к пониманию и успеху!
Записывайтесь на открытый урок, где мы раскроем все тайны Hooked Model. Мы разгадаем секреты спуска с горы, подъема на гору, плоской равнины и обрыва. Узнайте, какие психологические механизмы прячутся за этими словами и как вы можете использовать их в своей компании!
Спикер Дмитрий Шоржин — опытный предприниматель и менеджер, эксперт-консультант в сфере международного бизнеса, обладатель степени MBA.
➡️Встречаемся 27 июня в 20:00 мск в преддверии старта курса «CJE / Customer Journey Expert». Все участники вебинара получат специальную цену на обучение!
Регистрируйтесь сейчас: https://vk.cc/cxS6ci
Индексы в SQL для PHP-разработчиков
Индексы в базах данных считаются "волшебной палочкой" для решения многих проблем при разработке веб-приложений. Впрочем, опытные программисты знают, что из этой палочки в любой момент может вылететь "Авада Кедавра".
Чтобы научиться осознанно пользоваться индексами в SQL и ускорить свои приложения, присоединяйтесь к открытому уроку 26 июня в 20:00!
На уроке ты:
1. Разберёшься, что такое индексы и как они работают в PostgreSQL и MySQL.
2. Научишься грамотно проектировать индексы под свои данные и запросы.
3. Узнаешь о неочевидных особенностях индексов, которые могут всё сломать, и как их избежать.
Твой гид в мир быстрых баз данных — Дмитрий Кириллов, соучредитель и технический директор 1С-Старт, опытный разработчик.
Регистрируйтесь прямо сейчас, чтобы попасть на открытый урок: https://vk.cc/cxSeKZ
Индексы в базах данных считаются "волшебной палочкой" для решения многих проблем при разработке веб-приложений. Впрочем, опытные программисты знают, что из этой палочки в любой момент может вылететь "Авада Кедавра".
Чтобы научиться осознанно пользоваться индексами в SQL и ускорить свои приложения, присоединяйтесь к открытому уроку 26 июня в 20:00!
На уроке ты:
1. Разберёшься, что такое индексы и как они работают в PostgreSQL и MySQL.
2. Научишься грамотно проектировать индексы под свои данные и запросы.
3. Узнаешь о неочевидных особенностях индексов, которые могут всё сломать, и как их избежать.
Твой гид в мир быстрых баз данных — Дмитрий Кириллов, соучредитель и технический директор 1С-Старт, опытный разработчик.
Регистрируйтесь прямо сейчас, чтобы попасть на открытый урок: https://vk.cc/cxSeKZ