Pull to refresh
-16
@eikhnerread⁠-⁠only

User

Send message

std::chrono в C++: управляем временем

Level of difficultyEasy
Reading time5 min
Views11K

Привет, Хабр!

Помните, какие времена были? Когда-то мы всерьез возились с time_t и ctime, огребали от структур tm и, если хотели засечь время, то приходилось чудить с difftime() и писать собственный секундомер на костылях. Вспомнить страшно — в голове сразу всплывают унылые алгоритмы перевода секунд в даты и обратно, а при упоминании часовых поясов хочется плакать. Слава небесам, пришел std::chrono! С ним управлять временем в коде можно чуть ли не с шиком: точные интервалы, аккуратные преобразования, поддержка календарей и таймзон — все это теперь под рукой и без изнуряющих плясок с бубном.

В этой статье я расскажу как использовать std::chrono.

Читать далее

Используй эту копеечную советскую микросхему, и часы оживут

Level of difficultyEasy
Reading time5 min
Views23K

Попросил меня недавно один мой хороший знакомый оживить вторичные часы для школьного музея, мол, тыжэлектронщик. Я раньше ни о каких вторичных часах и не слышал, хотя, как оказалось, многократно их видел. Товарищ ввел меня в курс дела да ещё снабдил сразу и ссылками на заметки, как это всё решается. Статья реально отличная, после нее не остается никаких вопросов, что нужно этим часам, чтобы тикать, спасибо её автору.

Желательно сперва прочесть её, чтобы вникнуть в тему. Но, так как яжэлектронщик, то после ознакомления решил попробовать решить эту задачу сугубо «железячными» методами без единой строчки кода. H-мост L298N, который формирует импульсы амплитудой 24 вольта нужной полярности, было решено оставить, как в указанной заметке, а вот сигналы для него получать на цифровой «рассыпухе» без применения контроллеров. Тем более, что такая реализация отлично подходит как учебная задача для слушателей недавно вышедших с моим участием бесплатных онлайн-курсов по цифровой схемотехнике для начинающих.

Часы, которые мне передал товарищ, выглядели солидно.

Читать далее

Вторичная жизнь вторичных часов. На Arduino

Level of difficultyEasy
Reading time20 min
Views18K

Сегодня разберём решение небольшой практической задачи: запустим советские вторичные электромеханические часы максимально простым способом. Попутно узнаем несколько простых и не очень вещей из области электроники и программирования микроконтроллеров.

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

Пишем Android приложение для фильтрации спам-звонков

Level of difficultyMedium
Reading time10 min
Views7.5K

Всем привет! Меня зовут Иван Чечиков. В этой статье я расскажу о своем пет-проекте - Android приложении, которое может идентифицировать нежелательные входящие звонки.

Подробности – под катом.

Читать далее

OSDEV: Разработка аллокатора на С++ часть 1. Неявный список свободных блоков с граничными тегами

Level of difficultyMedium
Reading time11 min
Views2.7K

Доброго времени суток.

При разработке ОС на с++ мы сталкиваемся с рядом трудностей, таких как отсутствие стандартной библиотеки и ABI с++ и прочее в этом духе. При чем перед реализацией PageAllocator и прочих аппаратных механизмов хотелось бы иметь какую то стандартную библиотеку позволяющую делать хоть что то. Об этом и пойдет речь.

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

Речь пойдет о немного переделанном алгоритме Кнута "неявный список блоков с граничными тегами" который описан в конце третьего тома в разделе "Распределение памяти". Его идея предельно проста:

Мы берем некоторый отрезок памяти, назовем его кучей и разбиваем его на блоки такого вида:

Читать далее

STM32 — грамотно включаемся от кнопки

Level of difficultyEasy
Reading time7 min
Views20K

Наличие у контроллеров STM32, да и практически любых других, режима энергосбережения STANDBY, который фактически представляет собой полное отключение (работает только RTC и сторожевой таймер, потребление составляет первые микроамперы, а состояние не сохраняется), дает возможность простейшим способом сделать включение и выключение устройства на таком МК нажатием кнопки, в том числе и задействованной под другие функции, без каких-либо дополнительных элементов. Есть, однако, несколько подводных камней, и в этой статье я расскажу, как на них не попасть.

Читать далее

Логирование FreeRTOS через Virtual Com Port

Level of difficultyMedium
Reading time10 min
Views3.3K

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

Тестирование stm32 в Qemu в Docker

Вентиляция  крытых бассейнов и аквапарков в холодном климате: Как избежать конденсата на окнах?

Reading time16 min
Views5K

 

У меня зазвонил телефон…

С этой классической фразы из стихотворения Чуковского можно начинать практически любую историю из жизни современного человека.

Так случилось и у меня в один из недавних вечеров.

На это раз меня  хотели пригласить в качестве консультанта по вопросу «проектирование систем отопления и вентиляции в крытых плавательных бассейнах и аквапарках».

Договориться  о сотрудничестве не удалось, но зато я нашёл тему для очередной статьи.

 

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

Вентиляция  крытых бассейнов- это острая тема в проектирование, так как никаких особых нормативов  и методик не существует, а проблем при эксплуатации объектов прорва.

Основной проблемой является конденсат, возникающий на стенах и окнах в зимнее время.

То есть проблема связана  не только с вентиляцией, но и с  системой отопления помещения.

 

Когда возникает конденсат?

Конденсат на стёклах возникает тогда, когда температура поверхности оказывается ниже так называемой «точки росы» для данного помещения.

«Точка росы»- эта температура, при которой возникает 100% относительная влажность воздуха при существующем количестве влаги в воздухе данного помещения.

Определяется  «точка росы» при заданном влагосодержании и температуре воздуха по I-d-диаграмме влажного воздуха (см.рис.1.)

Читать далее

Конечный Aвтомат Аппаратного I2C-Трансивера

Level of difficultyEasy
Reading time9 min
Views5.1K

В этом тексте я показал как конечный автомат может работать ядром для драйвера аппаратного I2C трансивера.

Меня удивляет, что в оригинальном коде от вендоров микроконтроллеров программисты прошли мимо конечных автоматов при написании I2C кода внутри своих официальных uHAL. Непорядок...

В связи с этим мне пришлось разрабатывать собственный полноценный драйвер I2C буквально на физических регистрах I2C трансивера.

Читать далее

Разработка служб для Windows на C++

Level of difficultyHard
Reading time48 min
Views13K

В данной статье описан пошаговый процесс разработки служб для операционной системы Windows с использованием языка программирования C++.

В статье будет представлена теоретическая база по работе служб в Windows, рассмотрено их общее устройство и будет реализовано приложение, с помощью которого можно будет устанавливать свою службу, запускать её, останавливать и удалять (деинсталлировать).

Читать далее

Полная автоматизация ворот

Level of difficultyEasy
Reading time5 min
Views19K

Для меня «умный дом» — это когда автоматика за тебя делает всяческую «рутину» и делает это без моего участия.

В загородной жизни аспектов, подлежащих автоматизации, гораздо больше, чем при городской. Один из таких объектов автоматизации — ворота для въезда на участок.

Как сделать так, чтобы они открывались сами, когда своя машина подъезжает?

Скорее открывай ворота!

Экспорт данных из базы данных в Excel на C#: 5 проверенных методов

Level of difficultyEasy
Reading time8 min
Views6.8K

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

В этой статье я расскажу о пяти уникальных подходах к экспорту данных из базы данных MySQL в файл Excel, используя различные библиотеки C# Excel. Я также приведу краткое сравнение этих библиотек, подчеркнув их особенности, производительность, цену и другие важные моменты.

Читать далее

Как устроены серийники для Windows, и как восстановить стёршийся COA

Level of difficultyMedium
Reading time9 min
Views27K

Эта история начинается с того, что я попытался переустановить Windows на ноутбуке, доставшемся мне вот с такой наклейкой Certificate of Authenticity (COA): часть символов серийника видны хорошо, остальные – в большей или меньшей степени угадываются; но несколько попыток ввести серийник «на глаз» успехом не увенчались. Пришлось углубляться в вопрос подробнее.

Читать далее

Анализируем HTTP трафик в Wireshark

Reading time4 min
Views16K

Анализатор пакетов Wireshark является одним из основных инструментов, используемых как сетевыми инженерами и администраторами, так и разработчиками и тестировщиками приложений для решения проблем с сетевыми протоколами.

При этом, не все умеют эффективно использовать тот функционал который представляет анализатор для работы с дампами трафика.

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

Читать далее

Простая нейронная сеть на C++

Level of difficultyEasy
Reading time5 min
Views25K

Всем привет!

При помощи нейронной сети решил проблему классификации фигур на изображениях размера 7 на 7 пикселей. Задача решалась в рамках студенческой лабораторной работы. Статья приводится в качестве руководства для решения подобных академических задач.

Читать далее

Основы менеджмента для начинающих руководителей и бизнесменов

Level of difficultyMedium
Reading time12 min
Views6.6K

Здравствуйте, уважаемые коллеги! Меня зовут Сергей «Системноинженерный» Павленко, и я рад приветствовать вас на страницах этой статьи. Сегодня мы поговорим об основах менеджмента – теме, которая критически важна для каждого, кто стремится стать успешным руководителем или предпринимателем. В современном мире успешное управление бизнесом требует не только интуиции, но и глубоких знаний и навыков. Цель этой статьи – помочь вам, начинающим руководителям и бизнесменам, освоить ключевые концепции и подходы в менеджменте, которые помогут вам эффективно управлять своими командами и проектами.

Спасти себе 5 лет жизни

4 типовые ловушки в работе со строками в С и С++ и как их избежать

Reading time9 min
Views17K

Некорректное использование строк может стать настоящей ахиллесовой пятой защиты программы. Поэтому так важно применять актуальные подходы к их обработке. Под катом разберём несколько паттернов ошибок при работе со строками, поговорим о знаменитой уязвимости Heartbleed и узнаем, как сделать код безопаснее.

Читать далее

Настраиваем QtCreator для полноценного программирования и отладки микроконтроллеров STM32

Reading time9 min
Views24K

Привет всем.

На данный момент я активно осваиваю разработку ПО для STM32 и хотел бы поделиться моим опытом.

Как известно, для STM32 имеется много сред для разработки, однако часть из них, несмотря на удобность, имеют ограничения по использованию в случае пробной версии. Так, для IAR размер прошивки ограничивается 32 кБ, что весьма немного.

В данной публикации будет рассмотрен способ настройки окружения для полноценной разработки и отладки ПО для микроконтроллеров STM32 в среде QtCreator.

Читать далее

Эмулятор RFID

Reading time14 min
Views74K

Эмулятор карт EM Marine



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

Недокументированные функции загрузки DLL. Стек вызовов LoadLibrary

Level of difficultyMedium
Reading time14 min
Views5.5K

Рассмотрели способы загрузки DLL и написали инструмент загрузки библиотек с нестандартным способом получения адресов функций.

Читать далее

Information

Rating
Does not participate
Registered
Activity