Как стать автором
Обновить
2
0

Пользователь

Отправить сообщение

SIM800L + STM32 Bluepill + Rust. Как оно?

Время на прочтение11 мин
Количество просмотров15K

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

Нажми меня

Книга «С++17 STL. Стандартная библиотека шаблонов»

Время на прочтение10 мин
Количество просмотров33K
image В книге описана работа с контейнерами, алгоритмами, вспомогательными классами, лямбда-выражениями и другими интересными инструментами, которыми богат современный С++. Освоив материал, вы сможете коренным образом пересмотреть привычный подход к программированию. Преимущество издания — в подробном описании стандартной библиотеки шаблонов С++, STL. Ее свежая версия была выпущена в 2017 году. В книге вы найдете более 90 максимально реалистичных примеров, которые демонстрируют всю мощь STL. Многие из них станут базовыми кирпичиками для решения более универсальных задач. Вооружившись этой книгой, вы сможете эффективно использовать С++17 для создания высококачественного и высокопроизводительного ПО, применимого в различных отраслях.

Далее представлен отрывок «Лямбда-выражения».
Читать дальше →

Артем, 34 года: Уволился с зарплаты $250k в год и уехал на пенсию в Португалию

Время на прочтение9 мин
Количество просмотров216K

Привет, меня зовут Артем Крумпан, и к 34 годам я успел 10 лет проработать в международной нефтегазовой компании в самых разных уголках мира, стать директором завода в Анголе, накопить миллион долларов, выйти на пенсию, и уехать вместе с женой и четырьмя детьми на пенсию в Португалию.

Читать далее

Совершенный цикл for

Время на прочтение6 мин
Количество просмотров55K

Сегодня необычный для меня формат статьи: я скорее задаю вопрос залу, нежели делюсь готовым рецептом. Впрочем, для инициирования дискуссии рецепт тоже предлагаю. Итак, сегодня мы поговорим о чувстве прекрасного.


Я довольно давно пишу код, и так вышло, что практически всегда на 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).


image


Так каков он, совершенный цикл?

Читать дальше →

Структуры и конструкторы по умолчанию

Время на прочтение7 мин
Количество просмотров89K
Конструктор по умолчанию — это довольно простая конструкция, которая сводится к созданию для типа конструктора без параметров. Так, например, если при объявлении нестатического класса не объявить пользовательский конструктор (не важно, с параметрами или без них), то компилятор самостоятельно сгенерирует конструктор без параметров. Однако когда речь заходит о конструкторах по умолчанию для структур (для значимых типов), то тут все становится не столь просто.

Вот простой пример, как вы ответите на следующий вопрос: сколько значимых типов из .NET Framework содержит конструкторы по умолчанию? Интуитивным ответом кажется "все", и будете не правы, поскольку на самом деле, ни один из значимых типов .NET Framework не содержит конструктора по умолчанию.

Читать дальше →

Почему все «прутся» в IT

Время на прочтение17 мин
Количество просмотров144K

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

Зачем? Почему? Что им на месте не сидится? Почему все «прутся» в это IT? Есть несколько факторов, которые этому поспособствовали. Некоторые из них мы рассмотрим. Они на самые глобальные, но важные.

Читать далее

Применение биполярных транзисторов с микроконтроллерами

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров51K

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

Читать далее

Python — серьезный язык для разработки backend

Время на прочтение13 мин
Количество просмотров75K

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

Читать далее

Пять книг, которые изменили мою карьеру программиста

Время на прочтение4 мин
Количество просмотров88K

"Читатель проживает тысячу жизней, прежде чем умрет.. Человек, который никогда не читает, проживает только одну "

- Джордж Р.Р. Мартин.

Читать далее

Самые странные вопросы на собеседовании и зачем их задают

Время на прочтение9 мин
Количество просмотров35K

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

Читать далее

Плацкарт «ёлочка» — индивидуальные капсулы и нормальные столы, результат эволюции предыдущих прототипов

Время на прочтение10 мин
Количество просмотров80K
У нас тут новый плацкарт, который имеет все шансы стать основной версией для ночных экспрессов. На нём я хочу показать, как ваши отзывы помогали менять вагон. Поскольку эта история прототипов уже длинная, отлично видно и тупиковые ветки, от которых отказались, и удачные решения. Начнём с того, что есть сейчас:



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



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

Напомню, традиционный плацкарт хорош, но если стоит задача удлинить полки и решить ещё кучу вещей, накопившихся за последние лет так 50, то нужна перекомпоновка. Именно её мы сейчас видим.
Читать дальше →

Си должен умереть

Время на прочтение21 мин
Количество просмотров112K

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

Попробуем понять, что же такое этот противоречивый язык Си - благословение или проклятие?

Читать далее

Embedded Linux. Отладка ядра

Время на прочтение5 мин
Количество просмотров9.4K

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

Читать далее

U-boot. Процедура инициализации по шагам

Время на прочтение6 мин
Количество просмотров31K

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

Читать далее

Дебажим U-boot на реальном железе

Время на прочтение6 мин
Количество просмотров16K

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

Читать далее

Введение в Tkinter

Время на прочтение4 мин
Количество просмотров446K
image

Всем доброго времени суток!

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

Как работает аллергия и что такое «прививка от аллергии»

Время на прочтение8 мин
Количество просмотров24K
image

Аллергия — это ошибка нашей иммунной системы, избыточная реакция на какой-то внешний фактор, который такой реакции вообще-то не требует. Некоторые виды такой реакции связаны с неправильными антителами среди иммуноглобулинов Е. Аллергия — один из видов такой реакции.

Работает это, сильно упрощая, следующим образом:

  1. В организм попадает какой-то инородный белковый агент, например, кусок пищи.
  2. Подсистема защиты организма от паразитов (как раз IgE) распознаёт его как что-то похожее по химическому следу на ленточного червя.
  3. Реакция ведёт к высвобождению большого количества медиаторов воспаления, среди которых главный в процессе — гистамин.
  4. Гистамин делает две вещи: поднимает тревогу для других подсистем иммунитета и расширяет сосуды, заодно уменьшая клетки их эндотелия, чтобы образовались просветы в сосуде для доставки «‎сил быстрого реагирования»‎ из кровотока к месту проникновения.

Всё это очень похоже на взрыв химической бомбы внутри организма. В зависимости от того в каком органе началась вечеринка, дальше это проявляется конъюнктивитами (если экзогенный белок прошёл через слизистую глаза), кожными реакциями, проблемами с ЖКТ или с дыханием.

Но прежде чем мы перейдём к лечению, придётся узнать, кто такие антигены и тучные клетки.
Читать дальше →

Черная пятница. Строго о скидках

Время на прочтение4 мин
Количество просмотров7.1K

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

Скидки под катом

Красивые визуализации GitHub с помощью PyGraphistry

Время на прочтение7 мин
Количество просмотров8.5K

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

Такие данные — косвенный индикатор конкуренции языков и технологий. К примеру, можно попробовать выяснить, сколько разработчиков C++ следят за разработчиками Rust и наоборот. За подробностями и кодом приглашаем под кат.

Читать далее

Язык программирования C++: Как он незаметно стал основой всего, и его ближайшее будущее

Время на прочтение7 мин
Количество просмотров29K

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

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность