Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👎2
50 веб сайтов по изучению C/C++
В этой статье я расскажу о 50 сайтах, которые, по моему мнению, должен знать и добавить в закладки каждый разработчик на Си или Си++. В этом списке представлены прямые ссылки на исходные коды программ вместе с их описанием.
https://www.mycplus.com/featured-articles/50-c-cpp-source-code-websites/
📲 Мы в MAX
👉 @Bookflow
В этой статье я расскажу о 50 сайтах, которые, по моему мнению, должен знать и добавить в закладки каждый разработчик на Си или Си++. В этом списке представлены прямые ссылки на исходные коды программ вместе с их описанием.
https://www.mycplus.com/featured-articles/50-c-cpp-source-code-websites/
👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥2👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Приглашаем на открытый урок.
🗓 26 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Professional».
Программа вебинара:
Вебинар будет полезен:
Java-разработчикам и backend-инженерам, начинающим работать с Kafka.
В результате вебинара:
Получите базовые знания по Kafka и сможете написать клиента на Spring Boot для отправки и приема сообщений.
🔗 Ссылка на регистрацию: https://vk.cc/cRvbxk
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
C++20 в bare-metal программировании, работа с регистрами микроконтроллеров Cortex-M
Сегодня я хотел бы обсудить тему, с которой так или иначе сталкивался почти каждый программист встраиваемых устройств без использования настоящих операционных систем, а именно прямое управление периферийными узлами микроконтроллера. A конкретнее, я хотел бы обсудить повышение безопасности при управлении периферийными модулями без потери эффективности, гибкости и читаемости.
Кто-то может подумать, что данная тема уже рассказана вдоль и поперек в многочисленных мануалах по проектам для STM32 (например, хабр). Те же, кто уже понял о чем будет идти речь, может подумать что это полное повторение уже существующих подобных идей (например эта и другие статьи автора зародили во мне интерес к этой теме несколько лет назад, а вот в языке программирования Rust большинство ящиков/крейтов Cortex-M/PAC уже используют проверками безопасности при манипулировании регистрами). Однако, не нужно спешить с выводами. Я полагаю, что могу дать интересную и полезную информацию для обоих вышеперечисленных категорий читателей.
Перед началом, тему того 'Зачем вообще лезть на уровень регистров, если каждый производитель дает HAL/BSP?' я оставлю вне рамок данной статьи. Я предполагаю, что если читатель открыл статью, то ему уже интересна данная тема, и мне не столь важно почему.
https://habr.com/ru/articles/819499/
📲 Мы в MAX
👉 @Bookflow
Сегодня я хотел бы обсудить тему, с которой так или иначе сталкивался почти каждый программист встраиваемых устройств без использования настоящих операционных систем, а именно прямое управление периферийными узлами микроконтроллера. A конкретнее, я хотел бы обсудить повышение безопасности при управлении периферийными модулями без потери эффективности, гибкости и читаемости.
Кто-то может подумать, что данная тема уже рассказана вдоль и поперек в многочисленных мануалах по проектам для STM32 (например, хабр). Те же, кто уже понял о чем будет идти речь, может подумать что это полное повторение уже существующих подобных идей (например эта и другие статьи автора зародили во мне интерес к этой теме несколько лет назад, а вот в языке программирования Rust большинство ящиков/крейтов Cortex-M/PAC уже используют проверками безопасности при манипулировании регистрами). Однако, не нужно спешить с выводами. Я полагаю, что могу дать интересную и полезную информацию для обоих вышеперечисленных категорий читателей.
Перед началом, тему того 'Зачем вообще лезть на уровень регистров, если каждый производитель дает HAL/BSP?' я оставлю вне рамок данной статьи. Я предполагаю, что если читатель открыл статью, то ему уже интересна данная тема, и мне не столь важно почему.
https://habr.com/ru/articles/819499/
👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
RustDesk
Клиентское программное обеспечение для удаленного рабочего стола с открытым исходным кодом, написанное на Rust.
Работает "из коробки", настройка не требуется. Отличная альтернатива TeamViewer и AnyDesk! Вы полностью контролируете свои данные, не беспокоясь о безопасности.
Вы можете использовать сервер разработчика или настроить свой собственный сервер или написать свой собственный сервер для рандеву/ретрансляции
https://github.com/rustdesk/rustdesk
📲 Мы в MAX
👉 @Bookflow
Клиентское программное обеспечение для удаленного рабочего стола с открытым исходным кодом, написанное на Rust.
Работает "из коробки", настройка не требуется. Отличная альтернатива TeamViewer и AnyDesk! Вы полностью контролируете свои данные, не беспокоясь о безопасности.
Вы можете использовать сервер разработчика или настроить свой собственный сервер или написать свой собственный сервер для рандеву/ретрансляции
https://github.com/rustdesk/rustdesk
👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4
Если на каждой ноде Kubernetes кластера нужно запустить контейнер, то какой ресурс Kubernetes вам подойдет?
DaemonSet является контроллером, основным назначением которого является запуск подов на всех нодах кластера. Если нода добавляется/удаляется — DaemonSet автоматически добавит/удалит под на этой ноде.
DaemonSet подходят для запуска приложений, которые должны работать на всех нодах, например — екпортёры мониторинга, сбор логов и так далее.
📲 Мы в MAX
👉 @Bookflow
DaemonSet является контроллером, основным назначением которого является запуск подов на всех нодах кластера. Если нода добавляется/удаляется — DaemonSet автоматически добавит/удалит под на этой ноде.
DaemonSet подходят для запуска приложений, которые должны работать на всех нодах, например — екпортёры мониторинга, сбор логов и так далее.
👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Joshuto
ranger-подобный терминальный файловый менеджер, написанный на Rust
https://github.com/kamiyaa/joshuto
📲 Мы в MAX
👉 @Bookflow
ranger-подобный терминальный файловый менеджер, написанный на Rust
https://github.com/kamiyaa/joshuto
👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
This media is not supported in your browser
VIEW IN TELEGRAM
💩3
Блиц-опрос Scala-разработчиков — самые полезные и бесполезные вещи в работе
Смотрите подкаст «Криптонит говорит» о Scala! В нём айтишники обсуждают:
🔹Scala, Java и их перспективы;
🔹как успешно пройти собеседование в айти;
🔹что нужно делать, чтобы стать хорошим программистом;
🔹и когда нейросети смогут делать code review на уровне старшего разработчика и многое другое.
📺 VK Видео
📺 YouTube
📺 Rutube
💬 Подкаст в телеграме
🎵 Яндекс.Музыка
Смотрите и подписывайтесь на подкаст «Криптонит говорит» — обсуждаем айти, искусственный интеллект, языки программирования и криптографию.
Реклама АО НПК «Криптонит» ИНН 9701115253, erid: 2Vtzqw3vMbo
Смотрите подкаст «Криптонит говорит» о Scala! В нём айтишники обсуждают:
🔹Scala, Java и их перспективы;
🔹как успешно пройти собеседование в айти;
🔹что нужно делать, чтобы стать хорошим программистом;
🔹и когда нейросети смогут делать code review на уровне старшего разработчика и многое другое.
📺 VK Видео
📺 YouTube
📺 Rutube
💬 Подкаст в телеграме
🎵 Яндекс.Музыка
Смотрите и подписывайтесь на подкаст «Криптонит говорит» — обсуждаем айти, искусственный интеллект, языки программирования и криптографию.
Реклама АО НПК «Криптонит» ИНН 9701115253, erid: 2Vtzqw3vMbo
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
Почему большинство инцидентов происходят ночью?
Если посмотреть на статистику SRE-команд, почти 70% серьёзных инцидентов случаются после 23:00. Причина не в “мистике”, а в том, что ночью сходятся три фактора:
1. Накопленный technical debt
Патчи, которые “временно” залили месяц назад, начинают стрелять именно в момент минимального трафика - когда сервисы активнее пересобираются, переезжают, чистят очереди, крутят бэкапы.
2. Скедуленные задачи
Cron, ETL, бэкапы, реплики - всё это стартует после полуночи. Если что-то где-то неправильно рассчитано, concurrency внезапно уходит в космос.
3. Усталость дежурного
Даже идеальный инженер ночью реагирует медленнее. Отсюда более долгая диагностика, выше вероятность ошибки и неправильного rollback-а.
Как снизить риск?
- Отдельный staging для всех nightly-джобов.
- Автоматический анализ cron-нагрузки перед релизом.
- Progressive Delivery: тёмные релизы, canary, feature flags.
- Аналитика “частоты ночных ошибок” и профилактическая оптимизация.
Самый мощный прием - не выкатывать ночью. Ни один SLA не стоит бессонной ночи и кривого деплоя.
Подпишись 👉@devopslib
Если посмотреть на статистику SRE-команд, почти 70% серьёзных инцидентов случаются после 23:00. Причина не в “мистике”, а в том, что ночью сходятся три фактора:
1. Накопленный technical debt
Патчи, которые “временно” залили месяц назад, начинают стрелять именно в момент минимального трафика - когда сервисы активнее пересобираются, переезжают, чистят очереди, крутят бэкапы.
2. Скедуленные задачи
Cron, ETL, бэкапы, реплики - всё это стартует после полуночи. Если что-то где-то неправильно рассчитано, concurrency внезапно уходит в космос.
3. Усталость дежурного
Даже идеальный инженер ночью реагирует медленнее. Отсюда более долгая диагностика, выше вероятность ошибки и неправильного rollback-а.
Как снизить риск?
- Отдельный staging для всех nightly-джобов.
- Автоматический анализ cron-нагрузки перед релизом.
- Progressive Delivery: тёмные релизы, canary, feature flags.
- Аналитика “частоты ночных ошибок” и профилактическая оптимизация.
Самый мощный прием - не выкатывать ночью. Ни один SLA не стоит бессонной ночи и кривого деплоя.
Подпишись 👉@devopslib
👍3❤1
Челлендж по обработке миллиарда строк на Go: от 1 минуты 45 секунд до 4 секунд
Пару недель назад я прочитал о запавшем мне в душу челлендже по обработке миллиарда строк, поэтому захотел решить его на Go.
Я немного опоздал, соревнования проводились в январе. И на Java. Меня не особо интересует Java, зато давно интересует оптимизация кода на Go.
Этот челлендж был очень прост: обработать текстовый файл названий метеорологических станций и температур, и для каждой станции вывести минимальное, среднее и максимальное значение. Чтобы упростить задачу, было ещё несколько ограничений, однако я проигнорировал те, что относятся только к Java.
https://habr.com/ru/articles/798215/
📲 Мы в MAX
👉 @Bookflow
Пару недель назад я прочитал о запавшем мне в душу челлендже по обработке миллиарда строк, поэтому захотел решить его на Go.
Я немного опоздал, соревнования проводились в январе. И на Java. Меня не особо интересует Java, зато давно интересует оптимизация кода на Go.
Этот челлендж был очень прост: обработать текстовый файл названий метеорологических станций и температур, и для каждой станции вывести минимальное, среднее и максимальное значение. Чтобы упростить задачу, было ещё несколько ограничений, однако я проигнорировал те, что относятся только к Java.
https://habr.com/ru/articles/798215/
👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1🤷♂1🔥1
Ни одна реализация элементарных функций не соответствует стандарту IEEE 754
Введённый в 1985 году стандарт IEEE-754 для чисел с плавающей запятой был предназначен для решения проблемы разнородности реализаций чисел с плавающей запятой, мешавших портируемости кода, а также для повышения стабильности между платформами.
Он получил широкое применение и многократно пересматривался в течение прошедших лет. Если вы когда-нибудь работали с любыми вещественными числами в своих приложениях, то они, вероятно, отвечали этому стандарту.
Моя работа в течение последнего года заключалась в анализе погрешности различных математических функций, накопления этой погрешности и способов её уменьшения при помощи различных программных паттернов. Одной из исследованных мной тем были базовые математические функции, используемые в функциях активации нейронных сетей, а также способы их аппроксимации для повышения производительности. В процессе работы нам пришлось столкнуться с противодействием со стороны людей, активно стремящихся к корректной реализации математических функций и к соответствию их стандартам, в частности, к соблюдению обеспечения корректности одной наименее значимой единицы измерения (unit in last place, ULP) для элементарных функций.
https://habr.com/ru/companies/ruvds/articles/881698/
📲 Мы в MAX
👉 @Bookflow
Введённый в 1985 году стандарт IEEE-754 для чисел с плавающей запятой был предназначен для решения проблемы разнородности реализаций чисел с плавающей запятой, мешавших портируемости кода, а также для повышения стабильности между платформами.
Он получил широкое применение и многократно пересматривался в течение прошедших лет. Если вы когда-нибудь работали с любыми вещественными числами в своих приложениях, то они, вероятно, отвечали этому стандарту.
Моя работа в течение последнего года заключалась в анализе погрешности различных математических функций, накопления этой погрешности и способов её уменьшения при помощи различных программных паттернов. Одной из исследованных мной тем были базовые математические функции, используемые в функциях активации нейронных сетей, а также способы их аппроксимации для повышения производительности. В процессе работы нам пришлось столкнуться с противодействием со стороны людей, активно стремящихся к корректной реализации математических функций и к соответствию их стандартам, в частности, к соблюдению обеспечения корректности одной наименее значимой единицы измерения (unit in last place, ULP) для элементарных функций.
https://habr.com/ru/companies/ruvds/articles/881698/
👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
std::exception — это базовый класс для всех стандартных исключений в C++Почему стоит наследоваться от std::exception?
• Единообразие в обработке исключений: Когда вы наследуетесь от
std::exception, ваш класс исключения приобретает интерфейс, который делает его совместимым с другими стандартными исключениями•
what() метод: std::exception предоставляет важный метод what(), который возвращает строковое представление исключения. Это позволяет вам предоставлять информативные сообщения об ошибке при обработке исключений• Легкость в поддержке кода: Если вы используете сторонние библиотеки или фреймворки, они также могут ожидать обработку исключений, производных от
std::exception• Стандартные типы исключений:
std::exception имеет несколько стандартных подклассов, таких как std::runtime_error, std::logic_error и другие. Вы можете использовать эти подклассы вместо базового std::exception, чтобы более точно определить характер ошибки👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2