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

Инженегр АСУТП

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

Упрощение кода с помощью if constexpr в C++17

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

Несколько новых возможностей C++17 позволяют написать более компактный и ясный код. Это особенно важно при шаблонном мета-программировании, результат которого часто выглядит жутко…


Например если вы хотите выразить if, который вычисляется во время компиляции, вы будете вынуждены написать код используя приём SFINAE (например enable_if) или статическую диспетчеризацию (tag dispatching). Такие выражения тяжело понять, и они выглядят как магия для разработчиков, незнакомых с продвинутыми шаблонами мета-программирования.


К счастью, с появлением C++17 мы получаем if constexpr. Теперь большинство приёмов SFINAE и статической диспетчеризации отпадает, и код уменьшается, становится похожим на "обычный" if.


Эта статься демонстрирует несколько приёмов использования if constexpr.

Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии53

Простой backend на C++: это возможно?

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

Была у меня мечта - писать backend на C++. А вот разбираться в unix socket'ах, TCP, многопоточной/асинхронной обработке запросов и во многом другом совсем не хотелось. Не верил я, что до сих пор нет каких-то минималистичных фреймворков. И сегодня я вам расскажу, как можно просто сделать HTTP API микросервис на C++ с помощью фреймворка Drogon.

Поехали!
Всего голосов 32: ↑32 и ↓0+32
Комментарии24

Теплая ламповая безопасность

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

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

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

Всем фанатам светодиодов дальше лучше не читать.

Читать далее
Всего голосов 51: ↑50 и ↓1+57
Комментарии164

Программируем микроконтроллеры ESP32 и STM32 на C# (nanoFramework)

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

.NET nanoFramework — это бесплатная платформа с открытым исходным кодом, основанная на .NET и предназначена для малых встраиваемых устройств, микроконтроллеров. С её помощью можно разрабатывать различные устройства для Интернета вещей, носимые устройства, научные приборы, робототехнические устройства, можно создавать прототипы и даже использовать на промышленном оборудовании. В первой части мы познакомились с платформой .NET nanoFramework, её архитектурой, основными возможностями, посмотрели примеры программного кода. Теперь перейдем к практике, установим nanoFramework на микроконтроллеры серии ESP32 и STM32, напишем первый «Hello World!», поработаем с аппаратными интерфейсами, и оценим переносимость кода с «большого» .NET на платформу nanoFramework.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+32
Комментарии120

Открытый проект файловой системы для внутренней памяти STM32H

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

Зачем ставить внешнюю IC памяти или SD карту если в микроконтроллере осталось много свободной Flash памяти! 

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

Как сделать из внутренней Flash подобие EEPROM сравнительно неплохо написано в этом апноуте от ST. Но с некоторого уровня комплексности встроенного ПО хранить данные в именованных файлах удобнее чем в жёстких структурах. Файлы упрощают реюзинг, облегчают поддержку преемственности версий, апгрейды и даунгрейды. Файлы освобождают от хлопот с планированием размещения во флэш и разруливанием конфликтов размещения, особенно если приложение модульное и модули разрабатываются отдельно. 

Читать далее
Всего голосов 14: ↑13 и ↓1+18
Комментарии19

Настоящий компьютер в Майнкрафте

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

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

Читать дальше
Всего голосов 42: ↑39 и ↓3+43
Комментарии26

OpenSilver. Воскрешаем Silverlight

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

12 октября Майкрософт прекращает поддержку Silverlight. С одной стороны - ок, все равно никто им уже не пользуется. А с другой, выясняется, что есть много компаний, которые 10 лет назад написали свои внутренние продукты на Silverlight, и успешно все это время работают. А сейчас нет ни людей, знакомых с бизнес логикой этих приложений, ни времени/возможности/знаний все это переписать с нуля.

Мы попытались бросить соломинку таким компаниям и выпустили OpenSilver - бесплатную  опенсорс реализацию Silverlight, которая работает во всех современных браузерах через WebAssembly.

Читать далее
Всего голосов 19: ↑18 и ↓1+22
Комментарии19

48 полноценных бесплатных книг для программистов (happy developer's day)

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

Привет, Хабр! Немного запоздало (ко дню программиста) делюсь подборкой бесплатных книг по программированию. Все они полезные, уровень скорее профессиональный, хотя и для развития от базового тоже подойдет, но, к сожалению, на английском. Среди тем книг: .NET, Алгоритмы, Android, iOS, Angular, C, C++, C#, JS, Linux, Python. В целом, найдется почти любая тема, которая приходит в голову.

Дисклеймер. Все эти книги взяты с одного ресурса, который существует за счет донейшенов. Получить книги можно без осуществления донейшенов, ресурс полностью бесплатный, пожертвования опциональны. Все книги написаны на основе контента со StackOverflow и являются код-ориентированными. Книги со временем обновляются. По ссылкам -- книги, актуальные на 15.09.2021.

Читать далее
Всего голосов 83: ↑82 и ↓1+98
Комментарии55

Как писать на C# аккуратно: память и производительность

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

К старту курса о разработке на C# делимся переводом статьи о типичных ошибках программирования на C# от Кристофа Насарре — технического рецензента книг Microsoft Press в целом и, конечно, книги CLR via C# в частности. Кроме того, Кристоф Насарре — один из авторов книги Windows via C++.

Читать далее
Всего голосов 17: ↑14 и ↓3+12
Комментарии6

Дистанционный съем показаний со счетчиков

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

При разработке домашней автоматизации ("умного дома") рано или поздно возникает задача дистанционного съема показаний с бытовых приборов учета (БПУ) электроэнергии, воды, тепла, газа. Если в БПУ нет специального интерфейса для считывания показаний, то такая задача решается с помощью дополнительного устройства, которое в своей памяти будет вести копию показаний БПУ и иметь интерфейс для считывания этих показаний. Есть много вариантов реализации такого устройства на любой вкус, но практически все они требуют наличия в БПУ электронного импульсного выхода. К сожалению, далеко не все БПУ оборудованы таким выходом. В этой статье представлен обзор одного устройства, которое может работать с любым БПУ, как с импульсным выходом, так и без.

Читать далее
Всего голосов 28: ↑28 и ↓0+28
Комментарии22

Почему мы перешли с Oracle на PostgreSQL, и как это сделать

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


Всем привет!


Сегодня расскажем о сравнительно новой для нас теме — про перевод приложения с Oracle на Postgres Pro (далее в тексте везде сокращу до PG). В общем смысле тема не столь уж нова — многие компании этим также занимаются или даже уже прошли этот путь. Так, например, на ежегодной конференции pgConf всегда есть несколько интересных докладов по этой теме (https://pgconf.ru/). Если говорить о формальностях, то мы реализуем инициативу согласно (Приказ Министерства связи «Об утверждении плана по импортозамещению программного обеспечения» от 01.02.2015 № 96). По факту — ещё и денег экономим, слезая с "лицензионной иглы". На эту тему можно отдельную статью написать, а в этой речь пойдёт о программной стороне вопроса. Кому интересно, добро пожаловать под кат.

Читать дальше →
Всего голосов 28: ↑25 и ↓3+31
Комментарии54

WPF, UWP, WinUI, MAUI, Windows App SDK

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

Человека далёкого от клиентской разработки на Windows все эти термины определённо путают. И даже среди MS-сообщества регулярно возникают споры жив UWP или мёртв. Причем главный вопрос в этом споре - а что же такое UWP?

Вот уже года 3 Microsoft проводит "рефакторинг" в своём "королевстве".  Несколько устав видеть одни и те же споры в твиттере, и оставлять одни и те же комментарии на хабре, я решил расписать как же многочисленные UI-фреймворки MS соотносятся между собой. Кто из них больше мёртв. Возможно, кому-то это поможет в выборе технологии для будущего проекта.

Читать далее
Всего голосов 23: ↑22 и ↓1+30
Комментарии40

Clarion — Язык программирования, про который все забыли. А мне пришлось вспомнить

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

В своем первом посте я хочу рассказать об одном из самых редких и старых языков программирования - Clarion. Я знаком со всей линейкой этих замечательных языков начиная с 2.1 далее 5.0, 6.0, 6.3, 8 и до 9.1 по текущий момент. Буду постепенно рассказывать общие детали данной технологии, мало кому может оказаться полезным, но крайне мало инфы об этой технологии в Рунете, поэтому хочу чтобы осталась память о данной технологии на просторах Сети.

Мое первое "соприкосновение" произошло примерно 13-14 лет (98-99), когда я, по воле случая, познакомился с программистом на работе у родителей. Это был бородатый дядька по имени Евгений Иванович. Меня сразу же завлекли его беседы про Базы данных, операторы, переменные, функции...

Читать далее
Всего голосов 19: ↑14 и ↓5+16
Комментарии46

Начинаем писать под stm8, выбираем среды разработки и стартуем

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

На пути в программировании stm8 есть развилка, о ней сегодня и поговорим.

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

Первый установка ST Visual Develop и выбор в качестве компилятора COSMIC Бывший платный, а ныне бесплатный, но со своими заморочками; регистрация, получение ключа, и прочие танцы с бубном.

Второй же вариант, более простой VS Code + PlatformIO и компилятор SDCC полностью свободный. И опять же не все так просто. Sdcc не умеет исключать не используемые функции. Я решил этот вопрос хоть и успешно, но не без дополнительных действий при написании кода.
Читать далее
Всего голосов 33: ↑31 и ↓2+43
Комментарии23

Есть ли жизнь после CentOS?

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

Под конец и без того нелегкого 2020 года Red Hat преподнесла всем поклонникам CentOS весьма неожиданный «подарок», объявив о радикальном сокращении EOL восьмой версии дистрибутива и последующем отказе от дальнейшего развития проекта. Пользователи операционной системы, на протяжении многих лет занимавшей третье место по популярности в мире, оказались на распутье. Что выбрать в такой ситуации? Стать «вечным бета-тестером», перейдя на CentOS Stream? Выделить бюджет на покупку лицензии Red Hat Enterprise Linux? Или быть может попробовать одно из конкурирующих решений?
Читать дальше →
Всего голосов 30: ↑29 и ↓1+37
Комментарии45

Разработка защищённого WEB интерфейса для микроконтроллеров

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

Цель - разработка компактного, простого, быстрого, защищённого и адаптивного WEB интерфейса для встраиваемого устройства на микроконтроллере. Микроконтроллер на ядре ARM Cortex-M, с размером Flash 1...4 Мегабайта и RAM 200...1000 Кбайт, частота ядра 100-1000... МГц.

Читать далее
Всего голосов 6: ↑4 и ↓2+4
Комментарии18

.NET Core + Docker на Raspberry Pi. А это законно?

Время на прочтение8 мин
Количество просмотров26K
Открытая платформа .NET Core работает практически на всем: Windows, Mac и десятке Linux-систем. Но еще есть SDK и Runtime. Раньше .NET Core SDK не поддерживался на чипах ARMv7/ARMv8, на которых работает Raspberry Pi. Но все изменилось. Подробнее о способах запуска под катом!

Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии15

Ontol: подборка видео-лекций и каналов для продвинутых программистов

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

Недавно на HackerNews обсуждали видео и каналы, где можно поучиться продвинутому программированию. Под катом — подборка из 30 полезняшек.

В перерывах между полетами на реактивном ранце и переводами материалов Y Combinator, я делаю проект «Ontol» — такое место в сети, где максимальная концентрация полезного, апгрейдящего мировоззрение материала (ценного на горизонте 10+ лет, например, такого), которым можно делиться бесплатно в 1 клик. (канал в телеграм: t.me/ontol)

Вот мои предыдущие бесплатные образовательные подборки:


Всего голосов 27: ↑25 и ↓2+37
Комментарии1

Edge платы для домашнего Computer Vision

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

Я люблю делать всякие странные штуки с Computer Vision. Назовем их “условно полезные девайсы”. Из того, что я выкладывал на Хабре, - рассказ про умную кормушку для птиц и камера для слежения за ребенком. По работе тоже примерно тем же самым занимаюсь. Так что люблю следить за актуальным рынком устройств которые подходят для ComputerVision. Свой прошлый обзор я делал полтора года назад. Что для Embedded - много. В этом я сосредоточусь на устройствах которые вышли недавно + на устройствах которые будут интересны для хоббийных проектов.

Читать далее
Всего голосов 26: ↑25 и ↓1+36
Комментарии23

Информация

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