Несколько лет назад сделал себе на Arduino блок мониторинга питания дачного котла от UPS. Как показала практика, связка Arduino MEGA + шилд на SIM900 со стандартными библиотеками работает очень нестабильно. Периодически всё зависает, само перегружается и т.д. Отладить это невозможно, поэтому стал искать другие варианты. В результате решил всё переделать на современных технологиях: взял за основу STM32 Bluepill, приобрел на али модуль SIM800L, но самое главное – весь код решил написать на Rust, купился на обещания его высокой надёжности. Что из этого получилось читайте дальше.
Пользователь
Книга «С++17 STL. Стандартная библиотека шаблонов»

Далее представлен отрывок «Лямбда-выражения».
Артем, 34 года: Уволился с зарплаты $250k в год и уехал на пенсию в Португалию

Привет, меня зовут Артем Крумпан, и к 34 годам я успел 10 лет проработать в международной нефтегазовой компании в самых разных уголках мира, стать директором завода в Анголе, накопить миллион долларов, выйти на пенсию, и уехать вместе с женой и четырьмя детьми на пенсию в Португалию.
Совершенный цикл for
Сегодня необычный для меня формат статьи: я скорее задаю вопрос залу, нежели делюсь готовым рецептом. Впрочем, для инициирования дискуссии рецепт тоже предлагаю. Итак, сегодня мы поговорим о чувстве прекрасного.
Я довольно давно пишу код, и так вышло, что практически всегда на C++. Даже и не могу прикинуть, сколько раз я написал подобную конструкцию:
for (int i=0; i<size; i++) {
[...]
}
Хотя почему не могу, очень даже могу:
find . \( -name \*.h -o -name \*.cpp \) -exec grep -H "for (" {} \; | wc -l
43641
Наш текущий проект содержит 43 тысячи циклов. Проект пилю не я один, но команда маленькая и проект у меня не первый (и, надеюсь, не последний), так что в качестве грубой оценки пойдёт. А насколько такая запись цикла for
хороша? Ведь на самом деле, важно даже не то количество раз, когда я цикл написал, а то количество раз, когда я цикл прочитал (см. отладка и code review). А тут речь очевидно идёт уже о миллионах.
На КПДВ узел под названием «совершенная петля» (perfection loop).
Так каков он, совершенный цикл?
Структуры и конструкторы по умолчанию
Вот простой пример, как вы ответите на следующий вопрос: сколько значимых типов из .NET Framework содержит конструкторы по умолчанию? Интуитивным ответом кажется "все", и будете не правы, поскольку на самом деле, ни один из значимых типов .NET Framework не содержит конструктора по умолчанию.
Почему все «прутся» в IT

Люди уходят в IT отовсюду: из инженеров КИПиА, электротехников, начальников службы охраны, химиков, бухгалтеров, экономистов, металлургов, юристов, медбратьев, руководителей отдела рекламы. Люди уходят в IT в любом возрасте: в 20, 30, 40 лет и даже после 50.
Зачем? Почему? Что им на месте не сидится? Почему все «прутся» в это IT? Есть несколько факторов, которые этому поспособствовали. Некоторые из них мы рассмотрим. Они на самые глобальные, но важные.
Применение биполярных транзисторов с микроконтроллерами

В современном цифровом мире микроконтроллерам часто требуется выполнять какие-то действия в физическом мире людей с помощью различных механических, оптических, акустических и других внешних устройств. Транзисторы призваны согласовать микроконтроллер с исполнительными устройствами. В статье рассмотрим применение биполярных транзисторов в ключевых режимах.
Python — серьезный язык для разработки backend

Всем привет! Меня зовут Аникин Денис, я тимлид в команде Chat в Райффайзенбанке. А также представитель внутреннего Python-сообщества, так называемый «community lead» (об этом как-нибудь в другой раз). В этой статье я хотел поговорить про отношение к Python среди разработчиков и обсудить все основные претензии, которые очень давно следуют за языком по пятам.
Пять книг, которые изменили мою карьеру программиста

"Читатель проживает тысячу жизней, прежде чем умрет.. Человек, который никогда не читает, проживает только одну "
- Джордж Р.Р. Мартин.
Самые странные вопросы на собеседовании и зачем их задают

Портал Superjob провёл опрос работодателей и выяснил, что 18% компаний используют при подборе кадров IQ-тесты, чаще всего речь идёт о руководителях, менеджерах и инженерах. Представители компаний поясняли, что IQ-тесты помогают им «оценить способности кандидатов оперативно принимать решения и обрабатывать большие объёмы информации». Для соискателя такие вопросы могут выглядеть странными. Мы спросили у специалистов, какие вопросы на собеседованиях вызывают недоумение. А у работодателей — зачем они их задают.
Плацкарт «ёлочка» — индивидуальные капсулы и нормальные столы, результат эволюции предыдущих прототипов

ТМХ показали четвёртый, близкий к финалу плацкартный вагон в диагональной компоновке. Напомню, сначала у нас был капсульный отель со шкафом вместо стола, потом целый вагон боковушек, а теперь есть тот вариант, который больше всего похож на китайский диагональный плацкарт, только с учётом всего того, что до этого говорили эксперты и пассажиры. Например, посты на Хабре собрали 548, 518 и 888 комментариев, куча обратной связи была с выставок, других публикаций и от тех, кто зашёл на макеты (они были на Ярославском, Павелецком вокзалах и на ВДНХ).

Значит, главное: будут и «капсулы», и привычные плацкарты со столом, в вашей тумбочке всё так же останутся ноги соседа. Багаж теперь не будет торчать в проход, а станет надёжно лежать между полкой и окном, плюс наверх можно будет лазить с бутылками. Естественно, новый свет, розетки везде и компромисс с багажными полками в проходе вместо третьих.
Напомню, традиционный плацкарт хорош, но если стоит задача удлинить полки и решить ещё кучу вещей, накопившихся за последние лет так 50, то нужна перекомпоновка. Именно её мы сейчас видим.
Си должен умереть

Язык Си - один из наиболее влиятельных языков программирования за всю историю. Он стал незаменимым инструментом разработки операционных систем, сместив с этого пьедестала языки ассемблера. Изучение Си обязательно для любого уважающего себя программиста. Этот язык любим за свою внешнюю простоту и ненавидим за беспощадность к ошибкам. Благодаря нему у нас есть ядро Linux и тысячи уязвимостей в нём же в придачу.
Попробуем понять, что же такое этот противоречивый язык Си - благословение или проклятие?
Embedded Linux. Отладка ядра

В предыдущих статьях описано, как мы учились дебажить загрузчик u-boot: 1, 2. С ядром все оказалось сложнее. Например, выяснилось, что ядро Linux в принице невозможно скомпилировать с отключенной оптимизацией (-O0). В статье описывается как нам все таки удалось запустить ядро на микропроцессоре ARM в режиме пошаговой отладки.
U-boot. Процедура инициализации по шагам

В предыдущей статье был описан процесс настройки IDE Eclipse для кросс-платформенной отладки загрузчика U-boot. В данной статье описывается устранение последних ограничений, препятствовавших полноценной его отладки. После чего, получив возможность полноценной отладки кода, пройдемся по всей процедуре инициализации загрузчика от первой инструкции и до конца в режиме отладки.
Дебажим U-boot на реальном железе

Продолжение предыдущей статьи, в которой мы ускорили разработку под embedded linux. Рабочая станция + sftp сервер + nfs сервер ускорили на порядок (10х) доставку изменений кода на целевое железо. Теперь не нужно часами компилировать код. В этой статье продолжаем очеловечивать разработку. На этот раз прикручиваем полноценную графическую IDE и пошаговую отладку кода на целевом железе с помощью программатора J-Link. Но пока только загрузчика U-boot. И автоматизируем развертывание рабочей среды разработчика с помощью Docker.
Введение в Tkinter

Всем доброго времени суток!
Tkinter – это кроссплатформенная библиотека для разработки графического интерфейса на языке Python (начиная с Python 3.0 переименована в tkinter). Tkinter расшифровывается как Tk interface, и является интерфейсом к Tcl/Tk.
Tkinter входит в стандартный дистрибутив Python.
Как работает аллергия и что такое «прививка от аллергии»

Аллергия — это ошибка нашей иммунной системы, избыточная реакция на какой-то внешний фактор, который такой реакции вообще-то не требует. Некоторые виды такой реакции связаны с неправильными антителами среди иммуноглобулинов Е. Аллергия — один из видов такой реакции.
Работает это, сильно упрощая, следующим образом:
- В организм попадает какой-то инородный белковый агент, например, кусок пищи.
- Подсистема защиты организма от паразитов (как раз IgE) распознаёт его как что-то похожее по химическому следу на ленточного червя.
- Реакция ведёт к высвобождению большого количества медиаторов воспаления, среди которых главный в процессе — гистамин.
- Гистамин делает две вещи: поднимает тревогу для других подсистем иммунитета и расширяет сосуды, заодно уменьшая клетки их эндотелия, чтобы образовались просветы в сосуде для доставки «сил быстрого реагирования» из кровотока к месту проникновения.
Всё это очень похоже на взрыв химической бомбы внутри организма. В зависимости от того в каком органе началась вечеринка, дальше это проявляется конъюнктивитами (если экзогенный белок прошёл через слизистую глаза), кожными реакциями, проблемами с ЖКТ или с дыханием.
Но прежде чем мы перейдём к лечению, придётся узнать, кто такие антигены и тучные клетки.
Черная пятница. Строго о скидках

Вы можете выбрать гаджеты и аксессуары любого цвета, если он черный... Да, в этом году мы все поняли буквально — и взяли в подборку главной распродажи один цвет. Список составляли, как для себя: любимые и проверенные продукты. Для большинства мы уже публиковали подробные обзоры. Черная пятница — прекрасный повод к ним вернуться.
Красивые визуализации GitHub с помощью PyGraphistry

В чёрную пятницу, пока у нас стартует флагманский курс Data Science, делимся интерактивными графами подписок веб-разработчиков и разработчиков моделей ML, а также знакомим читателей с инструментом визуализации больших графов — PyGraphistry.
Такие данные — косвенный индикатор конкуренции языков и технологий. К примеру, можно попробовать выяснить, сколько разработчиков C++ следят за разработчиками Rust и наоборот. За подробностями и кодом приглашаем под кат.
Язык программирования C++: Как он незаметно стал основой всего, и его ближайшее будущее

Мощный, гибкий, сложный: история C++ началась еще 40 лет назад, и по сей день он остается одним из наиболее широко используемых языков программирования. TechRepublic в беседе с создателем C++ Бьерном Страуструпом попытался выяснить, в чем его особенность.
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность