— О чём я сегодня расскажу? Первое — введение в асинхронность. Далее мы рассмотрим примитивы, которые можно использовать в новом стандарте, и интеграцию с планировщиками. Также немаловажным аспектом будет являться работа со старым кодом, если мы пишем новый код с использованием нового подхода. Затем я покажу бонус, достаточно интересный и необычный. И подведём итоги того, что у нас получилось.
Читать полностью »
Рубрика «Программирование» - 109
Асинхронность в С++20. Доклад в Яндексе
2021-09-21 в 9:54, admin, рубрики: async/await, c++, асинхронное программирование, Блог компании Яндекс, Компиляторы, планировщики, примитивы, Программирование, Совершенный кодКак я потерял работу программиста в 65 лет
2021-09-20 в 13:03, admin, рубрики: Законодательство в IT, Карьера в IT-индустрии, поиск работы, поиск работы в it, Программирование, сложности с поиском работы, удаленная работаВедь я профессионал в IT. Как такое могло случиться?
65 лет, по идее, это год «выхода на пенсию». Для меня этот год стал годом «окончания» всего. В этой статье я решил рассказать о своем двухлетнем пути без работы. Ну и как теперь я работаю неполный день.

Дисклеймер. Читать полностью »
Код без багов и сломанное авто: как мы нетривиально проверяли Заправки 2ГИС
2021-09-20 в 12:05, admin, рубрики: АЗС, Анализ и проектирование систем, бесконтактная заправка, Блог компании 2ГИС, заправки 2гис, Программирование, разработка мобильных приложений, управление разработкой
От DoS до RCE: о неуловимом векторе атак
2021-09-20 в 10:37, admin, рубрики: ddos, dos, exploit, jetty, rce, wordpress, Блог компании DeteAct, информационная безопасность, Программирование, уязвимость, эксплойтПривет читателям блога компании DeteAct!
Меня зовут Омар Ганиев, многие меня знают по нику «Beched».
Во время проведения пентестов и анализа защищённости мы иногда обнаруживаем необычное поведение какой-то системы, которое может приводить к интересным явлениям.
Одной из таких интересных для меня тем являются атаки, которые путём выведения из строя какой-то из частей системы позволяют повысить привилегии, обойти средство защиты и даже исполнить произвольный код.
Давно думаю о том, чтобы систематизировать такие атаки, а пока расскажу про 3 конкретных атаки из практики пентеста.
Введение в программирование: заготовка игры-платформера на SDL в 300 строк C++
2021-09-19 в 15:21, admin, рубрики: c++, Программирование, программирование для начинающих, разработка игрЭтот текст предназначен для тех, кто только осваивает программирование. Я читаю лекции по C++ на первом курсе местного университета, и в качестве практикума предлагаю запрограммировать любую игру (не выношу проектов типа "софт бронирования книг в местной библиотеке"). Соответственно, чтобы помочь начинающим, я сделал некоторое количество заготовок, с которых можно стартовать свой проект. Например, заготовку олдскульного 3д шутера в 486 строк C++ я уже описывал, а вот тут можно посмотреть, что из неё сделали первокурсники.
В этот раз всё будет ещё проще, я хочу сделать заготовку под простейший платформер, вот так выглядит результат:

На данный момент проект содержит менее трёхсот строчек цпп:
ssloy@khronos:~/sdl2-demo/src$ cat *.cpp *.h | wc -l
296
Мой опыт показывает, что просто выложить код заготовки недостаточно. Нужно детально описать, как именно я пришёл к такому коду, ведь самый главный навык программиста — это суметь разбить сложную задачу на некоторое количество более простых подзадач, каждая из которых решается легко.
Итак, поехали!
Разговор тестировщиков среднего возраста об индустрии тестирования 21 века
2021-09-18 в 12:00, admin, рубрики: testing, Блог компании Конференции Олега Бунина (Онтико), Карьера в IT-индустрии, карьера ИТ-специалиста, карьера программиста, карьера тестировщика, конференции, Программирование, развитие программиста, тестирование, Тестирование IT-систем, тестирование веб-приложений, Тестирование веб-сервисов, тестирование приложений, тестирование сайтовДисклеймер. Данная статья появилась в результате записи диалога, поэтому в тексте могут встречаться просторечия и немного рекламы.
20-25 лет назад у профессии тестировщика на территории постсоветского пространства не было престижа от слова совсем. Тестировщиками брали тех, кого называли «уверенными пользователями компьютеров». В какой-то момент они были подобны «менеджерам по уборке помещений» — прибраться за разработчиками, рассказать, что вот тут они букву потеряли. Представления о качестве, процессах и разработке развивалось очень медленно. Впрочем, случались и исключения.
Работа с СОМ-портом на Си в linux
2021-09-17 в 9:00, admin, рубрики: C, linux, ruvds_статьи, uart, Блог компании RUVDS.com, Программирование, Производство и разработка электроники, Разработка под Linux, системное программирование
Каждый, кто постоянно занимается электроникой и программирует встраиваемые устройства, неизбежно сталкивается с необходимостью работы с СОМ-портом под линуксом. Недаром, моя статья "UART и с чем его едят" спустя 11 лет после выпуска набирает просмотры и комментарии.
Для разработчиков чаще всего появляется задача сопрячь какой-то датчик, либо удалённое устройство с одноплатником. Да что греха таить, сейчас в 2021 году UART, наверное, самый распространённый интерфейс для обмена данными, несмотря на всю его архаичность. Далеко за примером ходить не надо, внутри смартфона, лежащего у вас в кармане, будет с десяток UART интерфейсов, самый известный из которых — это подключение SIM-карты.
Поэтому умение работать с СОМ-портами в linux особенно важно. И вот, казалось бы, UART, древнейший интерфейс, всё должно быть известно и понятно, и даже опытные программисты ломают зубы, работая с ним в линуксе. Особенный цирк с конями начинается при работе с передачей сырых данных по RS-485. Не знаю ни одного программиста, который бы не хватил горя при разработке ПО для таких решений. Самое забавное, что с более новомодным i2c работать в линуксе куда проще и понятнее, чем с ортодоксальным UART. Чтобы не было путаницы дальше, всё семейство UART (RS-232, RS-485, UART 5V, UART 3,3 и т.д.) по тексту я буду называть COM-порт или UART. Мы говорим в статье не о физическом интерфейсе, а о программной стороне вопроса.
В этой статье я хочу показать, как писать свои программы, работающие с UART в ОС Linux. И неважно на каком языке вы пишете программу для работы с UART (python, c, c++, bash, php, perl и т.д.), принцип работы и грабли будут одни и те же, так как всё равно всё упирается в системные вызовы к ядру. А не понимание того, что там происходит и приводит к различным трудноуловимым багам.Читать полностью »
Как написать FizzBuzz на собеседовании
2021-09-15 в 22:19, admin, рубрики: Rust, ненормальное программирование, Программирование, я у мамы петросянЗдравствуй.
Недавно я проходил собеседование в одну солидную айтишную контору. Когда мы разобрались с формальностями, начался технический этап, на котором мне поручили написать fizzbuzz. По не вполне понятным мне причинам обсуждение решения этой задачи растянулось на довольно большой срок, после которого время на интервью уже вышло. Мне расстались на хорошей ноте, и мне пообещали перезвонить. Пока я жду оффер, я решил поделиться своим опытом прохождения интервью с широкой публикой, равно как и своим решением, ибо они показалось мне заслуживающим внимания.
Почти детективная история одной «кровавой» ошибки
2021-09-15 в 18:05, admin, рубрики: ccmram, STM32F4, Блог компании TIMEWEB, Программирование, программирование микроконтроллеров, Производство и разработка электроники, Промышленное программирование
Дополнение статьи «Размещение кучи FreeRTOS в разделе CCMRAM для STM32», и в продолжение серии статей про различные полезности для STM32 (1, 2 и 3), хочу обратить внимание на одну особенность работы с CCM RAM памятью, которая может быть причиной совершенно не очевидных ошибок в работе устройств, одна из которых выпила у автора достаточно много крови, так что с чистой совестью её действительно можно назвать «кровавой».
А сама история такова. В логике алгоритма некого устройства засела трудноуловимая плавающая ошибка. И чтобы временно купировать её влияние, было принято решение периодически устройство перезагружать. Сам знаю, что это не очень хорошее решение, но как временный костыль пойдет.
Вот только костыль не помог. Помогало только физическое выключения питания, а программная перезагрузка микроконтроллера не помогала! Более того, даже перезагрузка с помощью кнопки RESET иногда не срабатывала! Устройство перезагружалось, но неправильное поведение устройства никуда не исчезало и в итоге все равно приходилось отключать питание физически.
48 полноценных бесплатных книг для программистов (happy developer’s day)
2021-09-15 в 14:16, admin, рубрики: .net, devops, open source, python, бесплатные книги, подборка книг, Программирование, Читальный залПривет! Немного запоздало (ко дню программиста) делюсь подборкой бесплатных книг по программированию (ну и в целом ресурсом с ними). Все они полезные, уровень скорее профессиональный, хотя и для развития от базового тоже подойдет, но, к сожалению, на английском. Среди тем книг:
-
.NET
-
Алгоритмы
-
Android
-
iOS
-
Angular
-
C
-
C++
-
C#
-
JS
-
Linux
-
Python
-
В целом, почти любая тема, которая приходит в голову
