Социальные сети Рунета
Вторник, 28 сентября 2021

[Из песочницы] С++, метапрограммирование и регистры микроконтроллера Привет, Хабр! Вот уже несколько лет все свои проекты для линейки микроконтроллеров stm32 я делаю на C++. За это время у меня накопилось некоторое количество материала, который может быть интересен другим разработчикам. Во избежание лишних вопросов: я использую связку QtCre...

STM32MP1 — ядра + Linux = идеальный микроконтроллер По роду своей деятельности занимаюсь разработкой различных приборов: измерительных, управляющих, контролирующих и т.п. В подавляющем большинстве устройство делится на 2 части: Требующий больших ресурсов микроконтроллера и не требующий жесткого реального времени графически...

[Из песочницы] Отладка и программирование микроконтроллеров stm32f303, atmega328 через любой интерфейс, как через jtag Данная статья посвящена моему первому open source проекту “repl”(ссылка на репозиторий внизу). Идея данного проекта заключается в том, чтоб позволить программисту микроконтроллеров отлаживать программу в микроконтроллере через любой его интерфейс, при этом чтобы отладка не с...

[Из песочницы] Подключение OLED дисплея ssd1306 к STM32 (SPI+DMA) В данной статье будет описан процесс подключение oled дисплея с контроллером ssd1306 разрешением 128x64 к микроконтроллеру stm32f103C8T6 по интерфейсу SPI. Также мне хотелось добиться максимальной скорости обновления дисплея, поэтому целесообразно использовать DMA, а програм...

О кэшах в микроконтроллерах ARM Привет! В предыдущей статье мы для ускорения графики на микроконтроллере применяли процессорный кэш. При этом мы использовали режим «write-through». Тогда мы писали о некоторых преимуществах и недостатках связанных с «write-through» режимом, но это был лишь беглый обзор. В...

Что делать, если поймал HardFault? Что делать, если поймал HardFault? Как понять, каким событием он был вызван? Как определить строчку кода, которая привела к этому? Давайте разбираться. Всем привет! Сложно найти программиста микроконтроллеров, который ни разу не сталкивался с тяжелым отказом. Очень часто он...

Отечественный микроконтроллер К1986ВК025 на базе процессорного ядра RISC-V для приборов учета электроэнергии Добро пожаловать в эпоху RISC-V! Решения на базе открытого стандарта системы команд RISC-V всё чаще появляются на рынке. Уже в серийном производстве микроконтроллеры от китайских коллег, интересные решения предлагает Microchip с FPGA на борту. Растет экосистема ПО и средст...

[Из песочницы] Отладочная плата STM32 Вступление На рынке представлено огромное количество отладочных плат на любой цвет и вкус. Поэтому для начинающих разработчиков электроники самым быстрым способом освоения программирования микроконтроллеров является покупка готовой отладочной платы, поскольку на разработку и...

[Из песочницы] Работа с китайской АЦП Hx711 Причина написания этого поста заключается в желании разобраться с модулем 24 разрядного дельта сигма преобразователя АЦП на основе микросхеме Hx711. Сам преобразователь собран в виде готового модуля по схеме включения рекомендованного производителем (????). Замечания о работ...

Разбираемся в особенностях графической подсистемы микроконтроллеров Привет! В этой статье я бы хотел рассказать об особенностях реализации графического пользовательского интерфейса с виджетами на микроконтроллере и при этом иметь и привычный пользовательский интерфейс и приличный FPS. Внимание я хотел бы акцентировать не на какой-то конкрет...

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

[Перевод] Лучшие RP2040 платы для ваших проектов в 2021 году В январе 2021 года Raspberry Foundation впервые представила чип собственной разработки, RP2040. Первая система на его основе — микроконтроллер Raspberry Pi Pico, который сразу же стал конкурентом части устройств на Arduino. Несколько позже собственные платы на основе это...

[Перевод] Практический взгляд на Raspberry Pi Pico с точки зрения STM32 Сравнительно недавно Raspberry Pi Foundation выпустила плату Raspberry Pi Pico, основанную на микроконтроллере (Micro Controller Unit, MCU) RP2040. Эта плата привлекла большое внимание членов сообщества разработчиков различных электронных устройств. Появилось довольно много ...

Как «раскирпичить» STM32 Здравствуйте! Меня зовут Дмитрий Руднев. В этой публикации я поделюсь своим горьким опытом. В современной разработке широко используются микроконтроллеры STM32. Они обладают неплохим соотношением цена/производительность, вокруг них сложилась развитая «экосистема». Для прош...

Запуск сложных C++ приложений на микроконтроллерах Сегодня никого не удивить возможностью разрабатывать на C++ под микроконтроллеры. Проект mbed полностью ориентирован на этот язык. Ряд других RTOS предоставляют возможности разработки на С++. Это удобно, ведь программисту доступны средства объектно-ориентированного програм...

Разрабатываем web-site для микроконтроллера С приходом в нашу жизнь различного рода умных розеток, лампочек и других подобных устройств, необходимость наличия веб-сайтов на микроконтроллерах стала неоспоримой. А благодаря проекту lwIP (и его младшему брату uIP) подобным функционалом никого не удивишь. Но поскольку lw...

Benchmark OpenCV на STM32 Сегодня обработка изображений прочно вошла в нашу жизнь. Никого не удивляет распознавание лиц или дорожной разметки. Самой распространенной библиотекой для этих целей на данный момент является OpenCV. На сегодняшний день OpenCV ориентирован прежде всего на большие платформы...

Численный FORTH Форт и сейчас известен, главным образом, среди разработки встроенных систем, как что-то вроде необычайного высокоуровневого ассемблера, например, для микроконтроллеров - AmForth и Mecrisp. Однако, когда-то давным давно был известен в другой ипостаси - как язык программирован...

[Из песочницы] Установка micropython на ESP8266 и работа с ним под Linux (для начинающих) Привет, Хабр! Это мой первый опыт с микроконтроллерами в целом, и ESP8266 (в виде Nodemcu v2) в частности. Возможно, для кого-то этот опыт окажется полезным. Почему именно micropython? Ответ простой — мой скромный опыт в области программирования ограничен Паскалем в ВУЗе,...

[Из песочницы] Отладка микроконтроллеров ARM Cortex-M по UART В данной статье я расскажу вам как можно использовать регистры отладки и breakpoint'ов в микроконтроллерах, построенных на ядрах ARM Cortex-M Читать дальше →

[Перевод] Реализация epoll, часть 4 Это — последний материал из серии четырёх статей (часть 1, часть 2, часть 3), посвящённой реализации epoll. Тут речь пойдёт о том, как epoll передаёт события из пространства ядра в пользовательское пространство, и о том, как реализованы режимы срабатывания по фронту и по уро...

[Из песочницы] EBlink — GDB сервер для ARM Cortex-M микроконтроллеров В сети не много информации о появившемся несколько лет назад GDB сервере EBlink. Этим постом постараюсь исправить ситуацию. EBlink поддерживает большинство моделей микроконтроллеров STM32 (серии F0, F1, F2, F3, F4, F7, H7, L0, L1, L4, G0 и G4), а также EFR32. Он интересен те...

TDD в микроконтроллерах. Часть 2: Как шпионы избавляют от зависимостей В предыдущей статье мы начали освещать тему эффективности применения методологии TDD для микроконтроллеров (далее – МК) на примере разработки прошивки для STM32. Мы выполнили следующее: Определили цель и инструменты разработки. Настроили IDE и фреймворк для написания тесто...

[Перевод] Lisp для микроконтроллеров Lisp для плат Arduino, Adafruit M0/M4, Micro:bit, ESP8266/32, RISC-V и Teensy 4.x. Новость! ARM версия 3.6b теперь поддерживает save-image (сохранение образа) на всех платах ATSAMD21  В последнем релизе ARM uLisp, версия 3.6b, можно сохранять образ всего вашего рабочего ...

[Перевод] Чиптюн-музыка на ATtiny4 и трехцентовом Padauk Когда я услышал «Bitshift Variations in С Minor» Роба Майлза – 16-минутный фрагмент 4-голосого полифонического аудио произведения – мне очень захотелось воплотить такое аппаратно. Реализовать это на любом микроконтроллере слишком уж просто, поэтому я решил взять самый мелки...

И снова про embedded: ищем баги в проекте Embox Embox – это кросс-платформенная мультизадачная операционная система реального времени для встраиваемых систем. Она рассчитана на работу в условиях невысоких вычислительных ресурсов и позволяет запускать Linux-приложения на микроконтроллерах без использования самого Linux. К...

[Перевод] Знакомимся с аудио платой Bluetrum AB32VG1 RISC-V Bluetooth через RT-Thread Bluetrum AB32VG1 – это макетная плата на базе микроконтроллера AB5301A RISC-V, спроектированного как под приложения с использованием Bluetooth-аудио, так и для общих проектов, которые работают с операционной системой реального времени RT-Thread. Эту плату мне прислали разр...

Простая самодельная VGA видеокарта Насколько мне известно, довольно многим интересно подключить микроконтроллер к обычному монитору и попробовать что-либо вывести на экран. В этой статье пойдёт речь о создании простейшей VGA-видеокарты на базе микроконтроллера atmega168-20. Читать дальше →

Семейство TXZ+ пополнило ассортимент 32-разрядных микроконтроллеров Toshiba Компания Toshiba объявила о «значительном стратегическом расширении и без того обширной линейки микроконтроллеров». Речь идет о семействе TXZ+, в которое вошли 32-разрядные микроконтроллеры на основе процессорных ядер Arm Cortex. Семейство разделено на два к...

Семейство TXZ+ пополнило ассортимент 32-разрядных микроконтроллеров Toshiba Компания Toshiba объявила о «значительном стратегическом расширении и без того обширной линейки микроконтроллеров». Речь идет о семействе TXZ+, в которое вошли 32-разрядные микроконтроллеры на основе процессорных ядер Arm Cortex. Семейство разделено на два ...

Размещение кучи FreeRTOS в разделе CCMRAM для STM32 При разработке одного девайса на базе STM32F407 столкнулся с проблемой нехватки оперативной памяти. Назначение самого девайса не принципиально, но важно, что изначальный код писался для десктопной системы и его нужно было просто портировать на микроконтроллер под управлением...

Аппаратные атаки на микроконтроллеры с использованием ChipWhisperer и методы защиты от них Аппаратные атаки представляют большую угрозу для всех устройств с микроконтроллерами (далее – МК), поскольку с их помощью можно обойти разные механизмы безопасности. От таких атак тяжело защититься программными или аппаратными средствами. Для примера можно прочитать статью...

[Из песочницы] Использование контроллера Arduino для прерываний В данной стать я приведу пример использования arduino контроллера для вызова прерываний программы на C#. Стоит отметить, что в WindowsForms присутствует элемент Timer который включается и выполняет код через определенный промежуток времени. Я решил реализовать подобное...

Генерация перемещаемого кода для процессоров ARM в компиляторе LLVM Процесс обновления «прошивки» для микроконтроллера – опасная вещь. Раньше при обновлении «прошивки» любой аппаратный сбой приводил к тому, что устройство превращалось в кирпич. В наше время часто имеется начальный загрузчик, который позволит произвести процесс обновления ...

[Перевод] Pimoroni Plasma 2040: простой и «яркий» микроконтроллер Микроконтроллеров на базе RP2040, чипа от Raspberry Pi Foundation, становится все больше. Совсем недавно мы рассказывали о наиболее удачных экземплярах. Теперь появилась еще одна система, которая называется Pimoroni Plasma 2040. Использовать этот микроконтроллер можно во м...

Свободный мини AUTOSAR редактор для микроконтроллеров В этом посте я хочу поделиться с вами программой написанной мной для разработки ПО под микроконтроллеры по стандарту близкому к AUTOSAR. Читать далее

Создание аналога посмертного сore dump для микроконтроллера При разработке программного обеспечения любого класса и назначения, зачастую приходится заниматься поиском ошибок, которые привели к краху всего приложения. И если в случае обычного компьютера, анализ логов и core dump`ов как правило не вызывает сложностей, то для устройст...

Google профинансирует добавление поддержки языка Rust в ядро Linux На этой неделе компания Google объявила о намерении профинансировать проект по повышению безопасности Linux путём написания отдельных частей ядра операционной системы на языке программирования Rust. Такое изменение означало бы серьёзный технологический и культурный сдвиг для...

[Перевод] Ускорение процесса разработки под Embedded Linux Любой программист, решивший заняться разработкой под Embedded Linux, придя буть-то из высокоуровневых языков программирования, либо из программирования микроконтроллеров на С/С++, неизбежно оказывается удивлен крайней недружелюбностью embedded linux. Текстовый блокнот и конс...

Семейство 32-разрядных микроконтроллеров Renesas RA на ядре Arm Cortex-M пополнила первая модель с поддержкой Bluetooth 5.0 Компания Renesas на этой неделе представила первый микроконтроллер семейства RA со встроенным интерфейсом Bluetooth 5.0 Low Energy. Помимо него, конфигурация однокристального микроконтроллера RA4W1 включает 32-разрядное ядро ​​Arm Cortex-M4, работающее на ча...

Семейство 32-разрядных микроконтроллеров Renesas RA на ядре Arm Cortex-M пополнила первая модель с поддержкой Bluetooth 5.0 Компания Renesas на этой неделе представила первый микроконтроллер семейства RA со встроенным интерфейсом Bluetooth 5.0 Low Energy. Помимо него, конфигурация однокристального микроконтроллера RA4W1 включает 32-разрядное ядро ​​Arm Cortex-M4, работающее на ча...

Отладочная плата для Arduino Nano На данный момент плата используется как учебная, тестер модулей с интернет- магазинов для различных микроконтроллеров (МК) и для создания законченных конструкций с минимальным изменением топологии печатной платы. В общем достаточно универсальная. Как всегда универсальность- ...

Hello NXP JN5169 World Есть у меня одна идейка - написать альтернативную прошивку для некоторых ZigBee устройств Xiaomi. Но есть проблема: я никогда не работал с микроконтроллерами NXP JN5169, которые используются в устройствах Xiaomi. NXP предоставляет IDE, несколько тысяч страниц документации, д...

[Перевод] Как распознать рукописный текст с помощью ИИ на микроконтроллерах Распознавание рукописных цифр с помощью TensorFlow и MNIST стало довольно распространённым введением в искусственный интеллект (ИИ) и ML. «MNIST» — это база данных, которая содержит 70 000 примеров рукописных цифр. Она широко используется как источник изображений для обуче...

[Перевод] Трассировка Python GIL Есть много статей, объясняющих, для чего нужен Python GIL (The Global Interpreter Lock) (я подразумеваю CPython). Если вкратце, то GIL не даёт многопоточному чистому коду на Python использовать несколько ядер процессора. Однако мы в Vaex исполняем большинство задач с инте...

.NET nanoFramework — платформа для разработки приложений на C# для микроконтроллеров .NET nanoFramework — это бесплатная платформа с открытым исходным кодом, основанная на .NET и предназначена для малых встраиваемых устройств, микроконтроллеров. С ее помощью можно разрабатывать различные устройства для Интернета вещей, носимые устройства, научные приборы, ...

Пишем шеллкод под Windows на ассемблере В этой статье я хочу показать и подробно объяснить пример создания шеллкода на ассемблере в ОС Windows 7 x86. Не смотря на солидный возраст данной темы, она остаётся актуальной и по сей день: это стартовая точка в написании своих шеллкодов, эксплуатации переполнений буферо...

[Перевод] Пять лет Rust В этом бардаке, который сейчас происходит в мире, легко забыть, что прошло уже пять лет с выпуска 1.0 в 2015 году! Rust за эти пять лет сильно изменился, так что мы хотели бы вспомнить о работе всех участников сообщества, начиная с момента стабилизации языка. Напомним, если ...

[Перевод] Пишем загрузчик на Ассемблере и C. Часть 1 Эта статья представляет собой ознакомительный материал о написании загрузчика на С и Ассемблере. Сразу скажу, что здесь я не буду вдаваться в сравнение производительности итогового кода, созданного на этих языках. В этой работе я просто вкратце изложу процесс создания загр...

Многопоточность на низком уровне Очень часто при обсуждении многопоточности на платформе .NET говорят о таких вещах, как детали реализации механизма async/await, Task Asynchronous Pattern, deadlock, а также разбирают System.Threading. Все эти вещи можно назвать высокоуровневыми (относительно темы хабрапоста...

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

Zephyr в embedded: опыт использования на STM32F7-Discovery История о моем опыте использования операционной системы реального времени (ОСРВ) Zephyr для устройства на базе микроконтроллера STM32F7-Discovery. В статье: Что такое Zephyr и при чем тут Linux? Запуск проекта на STM32. Интересные моменты по работе с драйверами. Фишки этой...

Cucumber и BDD. Пишем UI-автотесты на iOS Привет, Хабр! В данной статье-мануале я хочу рассказать о базовых функциях такого фреймворка как Cucumber и его применение для создания ui авто тестов на мобильных iOS устройствах.Я ставлю перед собой задачу сделать описание максимально простым и понятным для большинства чит...

Снова про шаблоны C++ в микроконтроллерах Идея использования шаблонов языка C++ для программирования контроллеров не является чем-то новым, в сети доступно большое количество материалов. Кратко напомню основные преимущества: перенос значительной части ошибок из runtime в compile-time за счет строгого контроля ти...

Раскладываем по полочкам параметры АЦП Привет, Хабр! Многие разработчики систем довольно часто сталкиваются с обработкой аналоговых сигналов. Не все манипуляции с сигналами можно осуществить в аналоговой форме, поэтому требуется переводить аналог в цифровой мир для дальнейшей постобработки. Возникает вопрос: на к...

Обзор возможностей Qt Creator 4.13 и QBS 1.17 для программирования микроконтроллеров Здравствуйте, товарищи программисты «железячники» и все кто им сочувствует. Я хотел бы продолжить обзор возможностей IDE Qt Creator в связке с системой сборки QBS в части программирования микроконтроллеров. Ранее я уже писал про улучшения в предыдущих версиях: QtC 4.10 и...

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

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

Как ускорить шифрование по ГОСТ 28147-89 на процессоре Baikal-M Наиболее важные замечания перед написанием алгоритма В этом посте на примере описания реализации алгоритма шифрования по ГОСТ 28147–89, построенного на сети Фейстеля, показаны возможности процессора Baikal-M и проведен анализ конвейера и сравнительные испытания реализации ал...

[Перевод] Разбираемся с системными вызовами в Linux с помощью strace Перевод статьи подготовлен специально для студентов базового и продвинутого курсов Administrator Linux. Системный вызов — это механизм взаимодействия пользовательских программ с ядром Linux, а strace — мощный инструмент, для их отслеживания. Для лучшего понимания работы о...

Разработка прошивки для аналоговой видеокамеры EVR-Y2022F В предыдущей статье было очень подробно рассмотрено устройство аналоговой видеокамеры с целью создания собственной прошивки. Как уже было сказано, камера имеет микроконтроллер неизвестного происхождения. Он гораздо богаче, чем привычные мне AVR: у него два напряжения питания...

Обзор возможностей Qt Creator 4.12 и QBS 1.16 для программирования микроконтроллеров Здравствуйте, товарищи программисты «железячники» и все кто им сочувствует. Я хотел бы продолжить обзор возможностей IDE Qt Creator в связке с системой сборки QBS в части программирования микроконтроллеров. Ранее я уже писал про улучшения в предыдущих версиях QtC 4.10 и QB...

[Перевод] Лучшие GitHub-репозитории для веб-разработчиков Программист тратит многие часы на разработку некоего функционала и на то, чтобы код соответствовал передовым практическим приёмам, принятым в той или иной среде. В эти часы не должно входить регулярное написание шаблонных конструкций. Программист может сильно помочь себе в д...

[Перевод] Смотрим на Chapel, D, Julia на задаче вычисления ядра матрицы Введение Кажется, стоит вам отвернуться, и появляется новый язык программирования, нацеленный на решение некоторого специфического набора задач. Увеличение количества языков программирования и данных глубоко взаимосвязано, и растущий спрос на вычисления в области «Data Scien...

Светодиод, таймер и прерывания на RISC-V с нуля (на примере GD32VF103 и IAR C++) Сегодня речь пойдет о модном — о RISС-V микроконтроллере. Я давно хотел познакомиться с этим ядром и ждал когда появится что-то похожее на STM32 и вот дождался, встречайте — китайский GigaDevice — GD32V. Инфраструктура для этого микроконтроллера не такая обширная как для ST...

Интеграция устройства в экосистему Samsung SmartThings на примере «Умного чайника» Допустим, вы сделали свое собственное устройство «Умного дома» и хотите интегрировать его в платформу домашней автоматизации Samsung SmartThings. Тогда вы сможете включить его в общую экосистему, поддерживающую множество устройств от разных производителей. Пользователи вашег...

Полноценная GDB отладка через USB на плате BluePill (STM32F103С8T6) В данной статье речь пойдет о программировании и полноценной отладке микроконтроллера STM32F103C8T6 через USB.Однажды, от коллег поступило предложение о участии в IoT проекте. Система предусматривала однопоточный запуск скриптов. Отладка производилась с помощью логов. И тут...

Работа с базами данных глазами разработчика Когда вы разрабатываете новый функционал с использованием базы данных, цикл разработки обычно включает следующие этапы (но не ограничивается ими): Написание SQL миграции → написание кода → тестирование → релиз → мониторинг. В этой статье я хочу поделиться некоторыми практ...

TDD для микроконтроллеров. Часть 3: Запуск на железе TDD для микроконтроллеров. Часть 1: Первый полет TDD для микроконтроллеров. Часть 2: Как шпионы избавляют от зависимостей TDD для микроконтроллеров. Часть 3: Запуск на железе В первой части нашего цикла статей мы начали освещать тему эффективности применения методологии TDD...

Как работает первый гибридный процессор x86 Диаграмма вычислительной микросхемы в процессоре Intel Lakefield: одно ядро Core (Sunny Cove) и четыре ядра Atom (Tremont) Десять лет назад ARM представила гетерогенную архитектуру многоядерных процессоров big.LITTLE с разными ядрами: одни были высокопроизводительными, а д...

[Из песочницы] PCI Express в ПЛИС V-й серии Intel: основы интерфейса и особенности аппаратных ядер Введение Знакомый многим интерфейс PCI Express или PCIe был доступен разработчикам систем на ПЛИС уже тогда, когда он только начинал распространяться в цифровой технике. В это время существовало решение, в котором программное ядро подключалось ко внешней микросхеме физическо...

[Из песочницы] Алгоритмы рандома В этой статье вы увидите самые разнообразные велосипеды алгоритмы для генерации случайных чисел. Про что статья Про алгоритмы генерирующие псевдослучайные числа, которые отличаются между собой качеством результата и скоростью исполнения. Статья будет полезна тем, кто хочет ...

Управление LCD и OLED дисплеями на AVR-ассемблере Сразу предупреждаю, что не собираюсь разводить холивары насчет преимуществ AVR-ассемблера перед С/Arduino, или даже перед BASCOM-AVR и MikroPascal for AVR — каждый инструмент уместен в своей области. У ассемблерного подхода в ряде случаев имеются свои преимущества — в основн...

Использование UDB в микроконтроллерах PSOC 4 и 5LP Infineon (Cypress) для управления светодиодами WS2812 Светодиоды типа WS2812 очень популярны, ими удобно управлять, передавая по одному проводу команды для сотен светодиодов. Они имеют, с одной стороны, очень простой протокол, а с другой стороны, в микроконтроллерах нет аппаратных интерфейсов для этого протокола и его приходитс...

[Перевод] Как демо Memories умещается в 256 байт Введение Привет! Меня зовут «HellMood», а эта статья посвящена небольшой программе для MS DOS под названием «Memories». Эта программа имеет размер 256 байт, она выиграла в категории «PC 256 byte» соревнований демосцены «Revision» 2020 года, а также получила приз зрительских...

Микроконтроллер Raspberry Pi RP2040 стал доступен в розницу по цене $1 Организация Raspberry Pi Foundation объявила о том, что в розничную продажу поступил микроконтроллер собственной разработки — изделие RP2040. Таким образом, теперь все желающие могут использовать этот чип для построения устройств по своим проектам. Напомним, что RP2040 являе...

Очередная статья: STM32 для начинающих Всех приветствую! Это моя первая статья на Хабре, поэтому прошу не кидаться тяжелыми предметами. Заранее спасибо. Начнем с предыстории. Когда-то мне пришлось перейти на микроконтроллеры ARM фирмы ST. Это было связано с тем, что PIC и AVR уже не хватало и хотелось новых при...

Разработка B-Secur упрощает добавление функции ЭКГ в электронные устройства Ирландская компания B-Secur в сотрудничестве с производителем электронных компонентов Maxim Integrated Products представила концентратор датчиков со сверхнизким энергопотреблением, который позволяет наделять функциями мониторинга состояния здоровья пользователя носимые ...

Samsung Exynos 2100 превосходит Snapdragon 888 в многоядерном тесте Грядущий процессор Samsung Exynos 2100 будет конкурировать с процессором Qualcomm Snapdragon 888, однако новые тесты Geekbench показали совсем другое. Новый процессор Samsung Exynos 2100 превосходит неизданный флагманский процессор последнего в многоядерных тестах. В сети п...

Метеостанция на Banana Pi M64 (Linux, C#, Docker, RabbitMQ, AvaloniaUI) Статей о создании метеостанции на базе Arduino не счесть. Можно сказать, если статья про метеостанцию, то это про микроконтроллеры Arduino, ESP32 или STM32. Но только не в этот раз. Будем запускать метеостанцию на Banana Pi BPI-M64 под Linux, без использования Arduino-подо...

Семейство Toshiba TXZ+ пополнили 20 моделей микроконтроллеров на ядре ARM Cortex-M4 Компания Toshiba объявила о выпуске 20 моделей микроконтроллеров (MCU) для высокоскоростной обработки данных, которые вошли в семейство TXZ+. Напомним, семейство TXZ+ было представлено в марте прошлого года. В него входят 32-разрядные микроконтроллеры на основе процессо...

Отладка микроконтроллеров ARM Cortex-M по UART Часть 2 В прошлой статье я рассказывал про прерывание DebugMon и регистры с ним связанные. В этой статье будем писать реализацию отладчика по UART. Читать дальше →

[Перевод] Низкоуровневое программирование STM32: от включения питания до «Hello, World» В этом материале я хочу рассказать о том, как писать программы для микроконтроллеров (Microcontroller Unit, MCU) Cortex-M, вроде STM32, используя лишь набор инструментов ARM и документацию, подготовленную STMicroelectronics. У некоторых читателей может появиться вопрос о том...

ITV Group и Huawei подписали соглашение о сотрудничестве в области разработки систем физической безопасности В рамках технологического сотрудничества будет проведена оптимизация работы программного обеспечения ITV Group на аппаратной платформе Huawei — серверах TaiShan, использующих 64-разрядные многоядерные ARM-процессоры общего назначения Kunpeng, разработанные и производимые ком...

[Перевод] SB181: логический вычислитель на базе АЛУ 74LS181 Уже какое-то время в моей мастерской дожидаются своего проекта пара микросхем АЛУ 74LS181. Но так как мысль о создании на их базе целого процессора была несколько пугающей, я решил задействовать эти чипы в роли «логического вычислителя»: своеобразного 8-битного калькулятор...

[Из песочницы] stm32. Смотрим в корень Вместо вступления Статья содержит пример ручной оптимизации критического участка прикладной программы применительно к бюджетным микроконтроллерам stm32, повышающий производительность в 5 и более раз по сравнению с библиотечной функцией. Читать дальше →

[Перевод] Пишем макет 16-битного ядра на C/C++ В первой и второй статьях я лишь коротко представил процесс написания загрузчика на ассемблере и C. Для меня это было хоть и непросто, но в то же время интересно, так что я остался доволен. Однако создания загрузчика мне показалось мало, и я увлекся идеей его расширения до...

Правильно [c]читаем параллельные планы PostgreSQL Исторически, модель работы сервера PostgreSQL выглядит как множество независимых процессов с частично разделяемой памятью. Каждый из них обслуживает только одно клиентское подключение и один запрос в любой момент времени — и никакой многопоточности. Поэтому внутри каждого о...

Raspberry всего за 1 доллар. Компания теперь продаёт чип RP2040 отдельно от платы В начале года Raspberry представила микроконтроллер Raspberry Pi Pico стоимостью всего 4 доллара. Одни из секретов столь низкой цены крылся в чипе RP2040 собственной разработки компании.  Теперь этот чип доступен для покупки отде...

Программирование устройств на основе модуля ESP32 Микроконтроллер — это интегральная схема, способная выполнять программы. Сегодня на рынке представлено множество таких моделей от самых разных производителей. Цены на эти устройства продолжают падать. Однокристальные чипы находят широкое применение в самых разнообразных сфер...

[Перевод] Поле течения — алгоритмы применения Поля течения - невероятно мощный и гибкий инструмент-алгоритм для создания необычных линий. Это один из основных инструментов, который я несколько лет использовал в моих генеративных произведениях, и я осознаю, что обращаюсь к нему снова и снова. Вполне возможно, что я испол...

Переключение контекста и простой вытесняющий планировщик для CortexM С каждым годом курсовые для моих студентов становятся все объемнее. Например, в этом году одним из заданий была разработка метеостанции, ведь только ленивый не делает метеостанции, а студенты они по определению не ленивые, поэтому должны её сделать. Её можно быстро накидат...

[Перевод] Низкоуровневое программирование микроконтроллеров tinyAVR 0-series Вы — 8-битный или 32-битный программист? Мы, в компании OMZLO, сосредоточили основные усилия на новых 32-битных ARM Cortex-чипах (STM32 и SAMD), которые, в сравнении с более старыми 8-битными микроконтроллерами (Micro Controller Unit, MCU) обычно предлагают больше RAM, бол...

Микроконтроллер + компьютер + своё программное обеспечение Своё устройство на микроконтроллере я начал "пилить" еще в начале 2019-го. Тогда я даже не думал, что захочу связать его с компьютером, но устройство постоянно эволюционирует, и вот настала пора. Причём нужно не просто связать, а написать своё фирменное ПО, которое будет упр...

Митигация уязвимостей: операционная система в помощь? Каждый, кто начинает изучать уязвимости программного обеспечения и их эксплуатацию, рано или поздно начинает задаваться вопросами: откуда берутся методики написания эксплойтов? Почему современное ПО содержит уязвимости? Насколько операционные системы с точки зрения проведени...

SKR v2 Уже в продаже Всем доброго времени суток.Вчера на портале был выложен пост о прекращении поставки skr 1.3, 1.4. Ссылка вот тут.Я бы хотел немного уточнить и поправить данную информацию. Платы skr v2 уже продаются в розницу на Али. Ссылка вот тут. Так же данная плата уже есть в наличии в м...

Раскрашиваем таможенную статистику. Или сколько и каких микросхем ввозят в Россию? Когда в 2008 году я разрабатывал микроконтроллеры серии 1986ВЕ9х перед мной стояло множество вопросов. Сколько должно быть Flash? сколько ОЗУ? сколько ног? какие интерфейсы? и так далее. И хотя в тот момент просто сделать рабочую микросхему уже было бы успехом, а мы смогли е...

Роботы, кварцевые резонаторы, микроконтроллеры… чем вообще занимается Epson? В очередной раз мониторя ленту новостей по запросу «Epson», в который раз удивился – насколько широко поле разработок компании… Тут тебе и кварцевые вибраторы (резонаторы) в телефонах, и микроконтроллеры всех мастей. Например, легендарный 32768 кГц-микроконтроллер Epson E0C6...

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

[Перевод] Одноплатник Pimoroni Pico LiPo: как микроконтроллер от Raspberry, только лучше После того, как Raspberry Pi Foundation разработала и анонсировала свой процессор RP2040, на рынке появилось несколько одноплатников на его основе, включая собственную разработку Raspberry. Среди наиболее заметных RP2040-проектов стоит отметить Adafruit Py RP2040 и Pimoroni...

[Перевод] Пишем загрузчик на Ассемблере и С. Часть 2 В предыдущей статье я рассказал о процессе загрузки, а также продемонстрировал написание загрузочного кода на C и ассемблере, в том числе с вложением инструкций последнего в код первого. При этом мы написали несколько простых программ для проверки работоспособности внедрен...

Микроконтроллер Renesas RE01B с поддержкой Bluetooth 5.0 и сверхнизким энергопотреблением подходит для необслуживаемых устройств IoT Компания Renesas Electronics на днях представила микроконтроллер семейства RE, получивший обозначение RE01B. Это 32-разрядный микроконтроллер со сверхнизким энергопотреблением, поддерживающий Bluetooth 5.0 Long Range (связь на расстоянии до 400 м) со скоростью до 2 Мбит...

[Перевод] Внутренности HP Nanoprocessor: высокоскоростной процессор, не умеющий складывать Комбинированные фотошбалоны Nanoprocessor. GLB слева от шины данных – инициалы разработчиков Джорджа Лэтема и Ларри Бауэра. HP Nanoprocessor – почти забытый процессор, разработанный компанией Hewlett-Packard in 1974 году (подробнее – по ссылкам "The Forgotten Ones: HP...

Аналитики TrendForce полагают, что пожар на фабрике Renesas усугубит дефицит автомобильных микроконтроллеров В минувшую пятницу, 19 марта, на фабрике компании Renesas в японском городе Нака произошел пожар. Предприятие, выпускающее полупроводниковую продукцию с использованием 300-миллиметровых пластин, в основном производит микроконтроллеры и однокристальные системы для автомо...

[Перевод] Обучение и оценка модели с Keras Это руководство охватывает обучение, оценку и прогнозирование (выводы) моделей в TensorFlow 2.0 в двух общих ситуациях: При использовании встроенных API для обучения и валидации (таких как model.fit(), model.evaluate(), model.predict()). Этому посвящен раздел «Использова...

Делаем голову шинного USB-анализатора на базе комплекса Redd В прошлой паре статей мы рассмотрели пример «прошивки» для комплекса Redd, делающей его ПЛИСовую часть логическим анализатором общего применения. Дальше у меня было желание сделать следующий шаг и превратить его в шинный USB-анализатор. Дело в том, что фирменные анализаторы ...

[Из песочницы] Настройка динамической маршрутизации (в частности BGP) поверх туннеля OpenVPN на Linux (и вероятно *BSD) Зачем и о чём эта статья? Если погуглить на тему «openvpn bgp», то можно найти несколько интересных и полезных с практической точки зрения статей (например раз или два). Но начиная решать задачку вынесенную в заголовок, я по многим причинам даже не удосужился погуглить. Идея...

Как улучшить ваш API сервис на node.js. Часть 1 Сейчас доступно приличное количество материалов по написанию API на node.js. Большинство из них в виде туториалов и демо-примеров в документациях. Этого достаточно, чтобы быстро разобраться и написать что-то свое. Но в них редко найдутся детали, почему это делается именно та...

Устройство расширений для браузера Firefox (WebExtensions) Для людей, работа которых связана с использованием сети Интернет, расширения браузера могут быть очень полезными инструментами. С помощью них можно избавить пользователя от повторения одних и тех же действий и лучше организовать рабочий процесс. Можно составить набор инструм...

О работе ПК на примере Windows 10 и клавиатуры ч.2 В этой части мы рассмотрим какой путь проходит информация о нажатой клавише от клавиатуры до CPU, будет очень много картинок и это не последняя часть. Я буду рассказывать об этом с точки зрения программиста который пишет в режиме пользователя — пользовательские програмы, web...

Huawei Kirin 820 5G оказался мощнее, чем Kirin 980 и Qualcomm Snapdragon 855 Предстоящий чипсет компании Huawei среднего класса Kirin 820 5G должен заменить прошлогодний Kirin 810. Он представляет собой 7-нм чип с использованием ядра процессора Cortex-A76, а также графического процессора Mali G77. Говорят, что процессор Mali G77 имеет прирост произво...

[Из песочницы] Точные и быстрые вычисления для чисел с плавающей точкой на примере функции синуса. Введение и часть 1 Внимательно прочитал очень хорошие статьи от ArtemKaravaev по сложению чисел с плавающей точкой. Тема очень интересная и хочется её продолжить и показать на примерах, как работать с числами с плавающей точкой на практике. В качестве эталона возьмём библиотеку GNU glibc (libm...

Как мы тестируем системы микрофонов на STM32: опыт разработчиков устройств Яндекса Привет, я Геннадий «Крэйл» Круглов из команды аппаратных решений Яндекса. Подбор микрофонов для микрофонной матрицы — сложная и интересная часть нашей работы: мы тестируем модели с различными параметрами, экспериментируем с разнообразными конфигурациями матриц, совершенству...

[Перевод] Программирование игры для embedded-устройства на ESP32 Часть 0: мотивация Введение Я искал для себя хобби-проект, над которым можно было работать вне моих основных задач, чтобы отвлечься от ситуации в мире. По большей мере меня интересует программирование игр, но также мне нравятся embedded-системы. Сейчас я работаю в игровой ко...

Универсальные платы для умного дома на базе микроконтроллера ATmega128 (ATmega2561) Недавно я написал первый пост о том, как начал переделывать обычные светодиодные светильники в диммируемые. Многим не понравилось что свой диммер я делаю на базе микроконтроллера ATmega128. Поэтому хочу объяснить, почему используется именно этот микроконтроллер, и почему в н...

Собираем и устанавливаем свою Linux-систему на микроконтроллер STM32MP1 В этой статье мы автоматизируем процесс сборки и установки Linux-системы на микроконтроллер STM32MP157-DK2. ОС будет обладать минимальной функциональностью, но зато мы соберём из исходников собственную систему. А поможет нам в этом Buildroot — система сборки Linux-дистрибу...

[Из песочницы] Организация удаленной работы SMB организации на OpenVPN Постановка задачи Статья описывает организацию удаленного доступа сотрудников на продуктах с открытым исходным кодом и может быть использована как для построения полностью автономной системы, так и окажется полезной для расширения, когда в имеющейся коммерческой системе возн...

Программируем прямо в Nginx Nginx — великолепный веб-сервер. Все мы привыкли использовать его в связке с бекендомами на разных языках программирования. Но оказывается можно писать простые программы прямо внутри конфигурационного файла Nginx. Это можно использовать для балансировки, написания простых ...

Что такое Android? Когда речь заходит об Android, многие не совсем понимают, что имеет ввиду человек. Android — это смартфон или операционная система? Что вообще такое «операционная система»? Многим может показаться этот вопрос слишком простым, но не все до конца понимают это....

Архитектурный шаблон MVI в Kotlin Multiplatform, часть 2 Это вторая из трёх статей о применении архитектурного шаблона MVI в Kotlin Multiplatform. В первой статье мы вспомнили, что такое MVI, и применили его для написания общего для iOS и Android кода. Мы ввели простые абстракции, такие как Store и View, а также некоторые вспомо...

[Перевод] TinyPhoto: встраиваемая графика и экономичные вычисления TinyPhoto – это миниатюрный электронный фотоальбом с встраиваемой графикой, собранный с использованием микроконтроллера ATiny85 и OLED-дисплея 128х64px. Такой дуэт может обеспечить не менее 20 часов непрерывного показа изображений от «таблетки» на 3В и 225мАч. Читать дальше...

[Перевод] Неизбежность проникновения FPGA в дата-центры Не нужно быть разработчиком чипов, чтобы программировать для FPGA, как не нужно быть программистом на С++, чтобы писать код на Java. Однако в обоих случаях, вероятно, это будет не лишним. Цель коммерциализации обеих технологий, Java и FPGA, в том, чтобы опровергнуть послед...

Что общего между LVM и матрешкой? Доброго времени суток. Хочу поделиться с сообществом практическим опытом построения системы хранения данных для KVM с использованием md RAID + LVM. В программе будет: Сборка md RAID 1 из NVMe SSD. Сборка md RAID 6 из SATA SSD и обычных дисков. Особенности работы TRIM/DI...

NVIDIA выкупит производителя ядер для микропроцессоров ARM за $40 млрд Здоровая монополия ещё никому не вредила в капиталистическом мире, но часто это правило не касается крупных корпораций, которые только и делают, что приобретают или выкупают различных производителей или разработчиков за баснословные суммы. Компания NVIDIA решила не быть искл...

Принцип SRP на примере Laravel Принцип SRP (Принцип Единой Ответственности) — один из основополагающих принципов написания поддерживаемого кода. В этой статье я покажу как применить данный принцип на примере языка PHP и фреймворка Laravel. Часто, описывая модель разработки MVC (MVP, MVVM или другие M**),...

[Перевод] Многократное использование UI-компонентов в масштабах организации Хотя React и другие библиотеки и фреймворки для веб-разработки упрощают многократное использование компонентов, сама собой такая схема работы не налаживается. В этой сфере всё ещё существуют сложные задачи, которые особенно характерны для тех случаев, когда речь идёт о масшт...

Пишем обёртку над SQLAlchemy Сore Для асинхронного Python существует мало полноценных ORM, и им далеко до таких монстров-комбайнов, как DjangoOrm и SQLAlchemy.ORM. Бедность ORM-инструментария для асинхронного программирования заставила многих программистов отказаться от зачастую непонятной им работы с ORM и ...

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

Renesas RX671 — высокопроизводительные 32-битные микроконтроллеры с функциями бесконтактного HMI Компания Renesas на этой неделе представила группу 32-битных микроконтроллеров (MCU) RX671, в которых высокая производительность и широкая функциональность дополнены возможностями сенсорного ввода и распознавания голоса для организации бесконтактного человеко-машинного ...

Объектно ориентированное программирование на Си без плюсов. Часть 1. Введение Приветствую! Каждый раз, когда начинаешь решать какую-либо большую задачу, то на пути появляется множество маленьких. И найденные или не найденные решения маленьких подзадач превращаются в то, что мы в дальнейшем называем опытом. Но к сожалению, если не пользуешься чем-...

[Перевод] Собираем и устанавливаем свою Linux-систему на микроконтроллер STM32MP1 Примечание переводчика: эта статья уже выходила в блоге, но из-за мисклика вышла как оригинальная статья. Выпускаю ее снова, указав автора оригинала и ссылку на него В этой статье мы автоматизируем процесс сборки и установки Linux-системы на микроконтроллер STM32MP157-DK2....

Strace в Linux: история, устройство и использование В Unix-подобных операционных системах общение программы с внешним миром и операционной системой происходит через небольшой набор функций — системных вызовов. А значит, в отладочных целях полезно бывает подсмотреть за выполняемыми процессами системными вызовами. Следить за «...

Зачем нужен регистр SPL Так и тянет меня задать в заголовке статьи вопрос, что по здешним правилам не допускается. А ответ опять очевиден: регистр SPL вообще не нужен.Я уже давно выступал с критикой системы команд AMD64, сейчас более известной как x86-64. Причем, задача специально анализировать поя...

Ускоряем запуск приложений с .NET 6, .NET на холодильнике и многое другое Данная статья содержит небольшое введение в JIT-компиляцию и .NET Core (отныне .NET 5, .NET 6 и так далее), а также несколько практических примеров ускорения запуска приложений на .NET. Данные советы могут быть полезны как для приложений, запускаемых на больших многоядерных ...

Раскрашиваем таможенную статистику. Или сколько и каких микросхем ввозят в Россию? (3) Продолжим анализировать какие иностранные микросхемы используются в России на основании таможенной статистики. Как мы это делаем ? Из данных ФТС выбираем записи в которых указан номинал ввезенной микросхемы, и используя внутреннюю базу данных дополняем эту запись основными п...

Запуск QT на STM32. Часть 2. Теперь с псевдо 3d и тачскрином Мы в проекте Embox некоторое время назад запустили Qt на платформе STM32. Примером было приложение moveblocks — анимация с четырьмя синими квадратами, которые перемещаются по экрану. Нам захотелось большего, например, добавить интерактивность, ведь на плате доступен тачскрин...

ESP32 в окружении VSCode В нескольких следующих статьях я хотел бы детально рассмотреть настройку окружения VSCode для работы с фреймворком ESP-IDF. Не совсем популярная комбинация ПО обладает как преимуществами, так и недостатками, которые при детальном рассмотрении мы попытаемся исправить, обойти ...

Вебинар «Как использовать данные на всех уровнях управления компанией» Как использовать данные на всех уровнях управления компанией. Операционный BI и управление по KPI Спикер – Антон Терехов, коммерческий директор группы компаний RU-CENTER, CEO и основатель SHOPOLOG.ru и Phenomen.org, ex. CMO OZON.ru. Более 18 лет занимается электронной ком...

Опыт создания web-приложения с Pony ORM Привет, Хабр! Недавно передо мной встала задача написать на Python web-приложение для разделения счёта в ресторане между участниками трапезы. Так как нужна DB для хранения данных о заказах и пользователях, встал вопрос выбора ORM для работы с базой. Разработка велась на Flas...

Сколько же ядер может быть в таком процессоре AMD? Компания рассматривает возможность выпуска CPU со структурой big.LITTLE Компания Intel недавно наконец-то выпустила на рынок свои первые потребительские гетерогенные процессоры Lakefield. Напомним, линейка состоит из двух весьма похожих CPU, каждый из которых содержит одно большое ядро и четыре маленьких. В конце 2021 либо в начале 2022 год...

Как устроены DPU, сопроцессоры для обработки данных Специализированные процессоры ASIC для конкретных областей — один из способов «перезапустить» закон Мура и преодолеть ограничения универсальных CPU общего назначения. Сейчас это очень перспективная область развития микроэлектроники. Собственные проекты есть у Google, Amazon...

Микрофонный усилитель и УНЧ для ЦАП и АЦП микроконтроллера Усилители сигналов для АЦП и ЦАП микроконтроллера В статье изложены подходы по построению схемотехники усилителей для микрофона и динамиков в микроконтроллерной технике. Занимаемое элементами усилителей пространство не превышает Читать дальше →

[Перевод] Руководство Google по стилю в C++. Часть 1 Часть 1. Вступление … Часть 8. Именование Часть 9. Комментарии … Все мы при написании кода пользуемся правилами оформления кода. Иногда изобретаются свои правила, в других случаях используются готовые стайлгайды. Хотя все C++ программисты читают на английском легче, чем на...

Ladder на службе в быту, а также почему это может оказаться Вам интересно и даже полезно Путь LED-самурая Немного предыстории — около года назад я опубликовал обзорную статью, где была описана минимальная отладочная плата для микроконтроллера серии STM32F405. Особого интереса тогда публикация не вызвала. А зря. Согласен, слишком много «расплодилось» подобных р...

Эволюция Docker. Часть 2.1 Данная статья является второй, в цикле по истории развития и изучению исходного кода Docker. В ней мы разберем, что представлял собой первый публичный релиз от 23 марта 2013 года. Изначально я планировал уложить весь материал, посвященный этой версии, в одной статье, но...

«Как зеницу ока...» или делаем простенькую охранную систему на базе микроконтроллера (Canny или Arduino) и Raspberry PI Во время подготовки статьи, про распознавание микроконтроллеров с помощью TensorFlow и OpenCV мне одновременно на глаза попались Craftduino, Canny 3 tiny и Raspberry PI, после чего я решил, что будет здорово еще раз объединить их в одной статье. Я долго думал, о чем писать, ...

IntelliJ IDEA: Structural Search & Replace Современные IDE — очень мощные инструменты, способные помогать разработчику в самых разных ситуациях. Но обратной стороной этой мощности является то, что большинство функций находится в тени — об их наличии мало кто подозревает. Простой пример одной...

Сохраняем настройки и лог файл во внутренней памяти микроконтроллера Задача сохранения настроек встречается в подавляющем большинстве современных устройств. Реже, но тоже очень часто, требуется хранение лог-файлов. Если речь идет о большом устройстве построенном на Линукс и содержащей как минимум SD карту, то с этими задачами не возникает пр...

Пишем свой dependency free WebSocket сервер на Node.js Node.js — это популярный инструмент для построения клиент-серверных приложений. При правильном использовании, Node.js способен обрабатывать большое количество сетевых запросов, используя всего один поток. Несомненно, сетевой ввод — вывод является одной из сильнейших сторон ...

Книга «Обработка естественного языка в действии» Привет, Хаброжители! Мы издали практическое руководство по обработке и генерации текстов на естественном языке. Книга снабжена всеми инструментами и методиками, необходимыми для создания прикладных NLP-систем с целью обеспечения работы виртуального помощника (чат-бота), спам...

Интеграция в проект LVGL графической библиотеки для микроконтроллеров LVGL — Light and Versatile Graphics Library также известная как LittleVGL. Библиотека поддерживает большое количество микроконтроллеров, таких как STM32, ESP32 и другие. Мне пока удалось запустить полноценную демо программу на ESP32 и STM32f429 Discovery. Библиотека открыт...

Изучаем VoIP-движок Mediastreamer2. Часть 10 Материал статьи взят с моего дзен-канала. В прошлой статье мы сделали дуплексное переговорное устройство, выполняющее обмен звуковым сигналом через дуплексную RTP-сессию. В этой статье мы научимся писать фильтры и добавим сделанный своими руками фильтр в сделанное своими рук...

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

Трезвый взгляд на W7500P — микроконтроллер со встроенным TCP/IP стеком Многие из тех, кто имел дело с микроконтроллерами, наверняка слышали о микросхеме конвертере SPI <-> Ethernet W5500. В свое время эта микросхема стала поистине "народной" по многим причинам, к которым можно отнести как низкую стоимость самих микросхем и готовых модулей...

[Перевод] Что ученые должны знать о железе для написания быстрого кода источник изображения Программирование сегодня используется во многих областях науки, где отдельным ученым часто приходится собственноручно писать код для своих проектов. Для большинства ученых, однако, компьютерные науки не являются их областью знаний; они изучили программи...

Переезд из Java в Kotlin: как забрать коллекции с собой Меня зовут Борис Николаев, и в первой статье на Хабре хочу сравнить Java и Kotlin при работе с коллекциями. Она будет полезна всем, кто планирует перебираться в Kotlin и не хочет долго осваиваться. В течение последних лет Kotlin становится всё более и более популярным. Мног...

Конструктор Lego и объектно-ориентированное программирование в Tcl. Разбор сертификата x509.v3 Часто приходится слышать, что скриптовому языку Tcl не хватает поддержки объектно-ориентированного стиля программирования. Сам я до последнего времени мало прибегал к объектно-ориентированному программированию, тем более в среде Tcl. Но за Tcl стало обидно. Я решил разобрать...

Архитектурные подходы к авторизации в серверных приложениях: Activity-Based Access Control Framework Сегодня поговорим об секьюрити в web (да, наверное, и не только) приложениях. Прежде чем описывать подходы и фреймворки расскажу небольшую предысторию. Предыстория За много лет работы в IT приходилось сталкиваться с проектами в самых разных сферах. У каждого проекта были сво...

Нужно больше ядер: новые чипы разных компаний с десятками и сотнями ядер для высокопроизводительных систем За последние пару лет сразу несколько компаний объявили о многоядерных процессорах, создаваемых этими организациями для высоконагруженных систем. О некоторых таких проектах на Хабре писали, в том числе и мы, о других — нет. Сейчас мы решили собрать вместе информацию о чи...

Кракс! Миллениалы изобрели Python фреймворк Пролог Здравствуй, Хабр! Данная статья посвящена разбору плюсов и минусов очередного Python фреймворка, который увидел свет около недели назад. Итак, небольшое лирическое отступление. Во время всем известных событий, когда нас чуть-чуть самоизолировали, у нас появилось немно...

Опыт сопряжения Java, JavaScript, Ruby и Python в одном проекте посредством GraalVM В прошлом месяце вышла стабильная LTS-версия многоязычной среды выполнения GraalVM 20.3.0 от корпорации Oracle и мне захотелось испробовать её для решения какой-нибудь интересной практической задачи. Для тех кто не в курсе, приведу краткое описание этой новой платформы. Graa...

[Перевод] Визуализация работы сервис-воркеров (Service Workers) Доброго времени суток, друзья! Вероятно, многие из вас слышали о таком новшестве в экосистеме JavaScript, как сервис-воркеры, которые являются ключевым элементом современной веб-разработки. Сервис-воркеры становятся все более востребованными, в первую очередь, благодаря п...

Часть 2: Mодули и AppStore. ESPboy — гаджет для ретро игр и экспериментов с IoT С публикации первой статьи об сконструированном мной девайсе ESPboy на микроконтроллере ESP8266 прошло довольно много времени. За это время удалось кое что сделать: Довести сам девайс до стадии производства Собрать модули расширения, написать под них софт и отладить Сде...

Книга «JavaScript с нуля» Привет, Хаброжители! JavaScript еще никогда не был так прост! Вы узнаете все возможности языка программирования без общих фраз и неясных терминов. Подробные примеры, иллюстрации и схемы будут понятны даже новичку. Легкая подача информации и живой юмор автора превратят нудное...

Meshtastic – оперативно-тактический радиочат без сотовой связи и интернета. Часть 1. Знакомство Вы когда-нибудь задумывались над тем, что будете делать, окажись внезапно в чрезвычайной ситуации без сотовой или спутниковой связи, без интернета, без возможности вызвать помощь? Ваш телефон, при этом, ещё пару-тройку дней без электричества будет работать и, вероятно, сможе...

Samsung Galaxy A31 будет базироваться на чипе MediaTek Helio P65 Как видно, практически ежедневно мы получаем данные о будущих смартфонах линейки Samsung Galaxy A.Новые данные касаются смартфона Samsung Galaxy A31. Сообщается, что будущая новинка оснащается однокристальной системой MediaTek Helio P65 (Helio G70). Указанный чип выполнен по...

[Из песочницы] Поверхностное моделирование при работе над САПР T-FLEX CAD 17 Автор: Тимофеев Сергей, программист-разработчик ЗАО «Топ Системы». Руководитель: Батюченко Игорь, руководитель группы разработки ЗАО «Топ Системы». В статье описывается теоретическая база работы новых операций поверхностного моделирования в T-FLEX CAD 17, а также их основн...

Студенты пишут Uart драйвер для STM32F411 Доброго здравия всем! Сегодня я хочу вам рассказать, как постепенно студенты учатся разрабатывать ПО для микроконтроллера на примере драйвера UART на STM32F411. Код и архитектуру с небольшими моими изменениями и доработками я попытаюсь привести здесь. Сразу отмечу, что все...

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

Azure RTOS. Часть 1: обзор и запуск (STM32 + CubeIDE + HAL) На недавно прошедшем Microsoft Build 2020 многократно упоминалась Azure RTOS как специализированная ОС жесткого реального времени для микроконтроллеров. В данном материале мы последовательно разберемся в том, что это за операционная система, какое место она занимает в продук...

[Перевод] Трансивер UART для 8-битного компьютера на макетной плате В последнее время мне всё больше нравится собирать 8-битные компьютеры из ТТЛ чипов. Я вдохновился замечательными ролками Бена Итера с ютуба, а также различными проектами с сайта Hackaday. В процессе проектирования и сборки собственного 8-битного компьютера я задумался над т...

Power-line communication. Часть 1 — Основы передачи данных по линиям электропередач Не так давно передо мной встала нетривиальная задачка — собрать устройство, которое могло бы по линиям электропередач (0,4 кВ), в сетях обычных бытовых потребителей, передавать некоторую информацию, а точнее — показания электросчетчиков. Перед началом работы над создание...

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

Краткие заметки embed-программиста: дублирование секции в памяти микроконтроллера Начальные условия Есть устройство на базе микроконтроллера (для примера будет взят stm32f405rgt6). При включении оно настраивает свою периферию на основе предпочтений пользователя или настроек по-умолчанию. Пользователь может менять настройки во время работы устройства (как ...

Программный контроллер интерфейса на STM32 Проблема обратной совместимости, вероятнее всего, будет всегда. В области разработки электроники порой приходится поддерживать устройства 30-летней давности (а иногда и старше). В таких аппаратах иногда всё собрано на логике, без каких-либо программируемых элементов. Кроме т...

Сборка приложения среды arduino средствами CI github Немного имея по работе дело с CI/CD (gitlab ce), не так давно на github наткнулся на actions, и решил попробовать, что же это за зверь такой. Собирать JS или какие то другие решения не очень интересно было, поэтому решил протестировать сборку Arduino скетча для esp8266, ...

Вычисляем на видеокартах. Технология OpenCL. Часть 1. Краткая история GPGPU 22 июня автор курса «Разработчик C++» в Яндекс.Практикуме Георгий Осипов провёл вебинар «Вычисляем на видеокартах. Технология OpenCL». Мы подготовили для вас его текстовую версию, для удобства разбив её на смысловые блоки. Зачем мы здесь собрались. Краткая история GPGPU. ...

Проводим нагрузочное тестирование скоростных USB-библиотек для STM32F103C8T6 В предыдущей статье я показывал предельную скорость шины USB у микроконтроллера STM32F103 со штатной библиотекой MiddleWare. В комментариях мне показали сразу две самодельных библиотеки, выжимающих из USB FS все соки. Но автор одной из библиотек высказал мысль, что быстро-то...

(S)SDLC, или Как сделать разработку безопаснее. Часть 3 Этой статьей мы завершим небольшой цикл о построении процесса безопасной разработки на основе SAST — статического анализа кода на безопасность. В первой части мы разобрали основные вопросы, возникающие при внедрении SAST в процесс разработки. Во второй части остановились на ...

[Перевод] Нет, Microsoft не переносит Windows на Linux Выбор будет не между Windows и Linux, а что сначала загружается: Hyper-V или KVM, а уже стеки Windows и Ubuntu будут хорошо совместимы друг с другом. В последнее время развернулась некоторая дискуссия о том, что Microsoft может в будущем перенести свою операционную систе...

Видео: диспетчер задач Windows может показать мультфильм, но нужен Threadripper 3990X Массовые мероприятия прошлого века не обходились без «анимационной трибуны» на стадионе, на которой «живые пиксели» с цветными квадратами в руках приводили в движение гигантские картины. Нечто подобное можно воссоздать и с помощью диспетчера задач Windows (Task Manager), но ...

Чип Exynos 880 5G конкурент Snapdragon 765G? В этом году мы стали свидетелями нападок на Samsung с призывом отказаться выпускать флагманы на базе фирменных чипов Exynos. Не особо жалуют некоторые пользователи и проприетарные SoC Samsung бюджетного и среднего класса. Но есть компании, которые верят в Exynos.   &nb...

4-нм Snapdragon 895 принесёт значительное улучшение производительности и энергопотребления Как ожидается, презентация Snapdragon 875 состоится уже 1 декабря этого года, а первые смартфоны от, как минимум, восьми различных компаний появятся на рынке уже в январе следующего года. По слухам, Qualcomm Snapdragon 875 будет производиться с использованием 5-нанометр...

Можно ли программировать на iPad Pro? При желании iPad Pro можно приспособить к программированию Вы заметили, что на большинстве фото и во многих офисах программисты в основном используют MacBook? Причин этого выбора множество, но одна из главных — ноутбуки Apple имеют консоль Bash и схожи с Linux, при этом пред...

Поиск ошибки FDCAN, которой нет Всегда работа с CAN была простой, но что-то пошло не так (в устройстве на КДПВ)… В последнее время мне часто удается использовать микроконтроллер STM32H750VB, и вот в одном устройстве понадобилось задействовать шину CAN, но первая же попытка, которую я предпринял показала в...

Язык Go обновился до версии 1.15 На днях представлен релиз языка программирования Go 1.15. Как известно, изначально это был проект компании Google, который вышел за пределы корпорации и стал развиваться при поддержке сторонних разработчиков. Код проекта распространяется под лицензией BSD. Достоинств у ...

[Из песочницы] Некоторые тонкости injection'а коллекций в Spring'е Всем привет! Меня зовут Владислав Родин. В настоящее время я преподаю на портале OTUS курсы, посвященные архитектуре ПО и архитектуре ПО, подверженного высокой нагрузке. Сейчас в OTUS'е открыт набор на новый поток курса Разработчик на Spring Framework. В преддверии старта к...

Google представил новый язык программирования Logica Корпорация Google довольно часто удивляет новыми проектами. То операционная система Fuchsia, теперь — новый декларативный язык логического программирования Logica. По словам разработчиков, он предназначен для манипулирования данными и транслирования программ в язык SQL. Н...

Как я делал себе АВР для генератора Несколько лет назад делал себе АВР (автоматический ввод резерва) для работы на даче от генератора. Сейчас многие ИТ-шники переходят на удалёнку, работают с дач, где качество электропитания может оставлять лучшего. Поэтому решил написать о своем опыте самодельного АВР на ми...

[Перевод] 9 самых популярных PHP-фреймворков Десятки лет PHP был самым любимым языком программирования в мире. И это не случайно. PHP-разработка ведётся быстро, получающиеся в итоге проекты отличаются высоким уровнем безопасности, их легко поддерживать. Кроме того, в ходе разработки PHP-проектов приходится писать не сл...

Linux в режиме реального времени Операционная система реального времени необходима, когда к работе процессора или потоку данных предъявляются жесткие временные требования. Таким образом она часто выполняет роль блока управления в специальных устройствах. Проведение научных экспериментов, приложения визуал...

Opium.Fill — цветовая схема глазами программиста Привет. Сегодня покажу вам цветовую схему, которой пользуюсь последние 2 года. Она была придумана, чтобы на проблемном проекте избавиться от огромного количества переменных в CSS. А потом оказалось, что эти принципы можно применить почти к любому проекту. В общем, попробу...

Спринт-пульс: выстраиваем эффективную работу внутри большой команды Спринт-пульс — это дополнительный инструмент, который может использовать Scrum-команда для организации процесса внутри спринта. Он помогает настроить работу в команде и экономит время на погружение новых специалистов. Как его применять, рассказывает железный project-manager ...

На пути к «10x инженеру»: шорткаты, сниппеты, шаблоны Программирование — творческая работа. Но в ней много рутины: поиск, перемещение и редактирование текста (читай кода), создание файлов, написание часто повторяющихся конструкций. Рутина — часть рабочего дня, но тратит время и выматывает — такое точно счастья не приносит. При...

Teensy 4.1 через MCUXpresso. Часть 2. Осваиваем GPIO и UART В прошлой статье мы начали работать с платой Teensy 4.1 не через сцепку из её «родных» среды разработки и библиотек (совместимых с Arduino), а через среду разработки и SDK, «родные» для установленного на ней микроконтроллера фирмы NXP. Мы убедились, что примеры от совершенно...

IDA Pro: каким не должен быть SDK Приветствую, Эта статья будет о том, как не нужно делать, когда разрабатываешь SDK для своего продукта. А примером, можно даже сказать, самым ярким, будет IDA Pro. Те, кто хоть раз что-то разрабатывал под неё и старался поддерживать, при чтении этих строк, наверняка, сейчас...

BIGTREETECH SKR PRO V1.1 и концевики. Вообще я не писатель, а читатель больше. Но вчера столкнулся с проблемой о которой хочу сообщить народу.Это схема подключения концевиков к плате.Местом подключения выводов микроконтроллера является анод светодиода, который катодом сидит прямо на земле. Это значит, что потенц...

std::atomic. Модель памяти C++ в примерах Для написания эффективных и корректных многопоточных приложений очень важно знать какие существуют механизмы синхронизации памяти между потоками исполнения, какие гарантии предоставляют элементы многопоточного программирования, такие как мьютекс, join потока и другие. Особен...

Плавность хода, шум и момент шагового двигателя при управлении микроконтроллером В данной статье я опишу решение поставленной мне задачи по снижению шума и повышению плавности движения механизма, движимого шаговым двигателем (далее просто ШД) при ускорении. Данная задача довольна специфична. Описанное мною решение будет полезно при разработке модулей уп...

[Из песочницы] Ввод данных в STM32F4xx с параллельного АЦП через DCMI Известно, что семейство микроконтроллеров STM32F4xx, имея на борту достаточно производительные ядра, вполне подходящие для «не мясорубочных» задач ЦОС не имеют полноценного интерфейса ввода данных с простейшей параллельной шины в режиме «pipe-line» (clk-data). «Покурив» «dm0...

[Из песочницы] Изучаем Event Tracing for Windows: теория и практика Добрый день. Недавно мне необходимо было разобраться со службой трассировки Windows. Эта служба появилась еще в Windows 2000, однако статей по этой службе в интернете оказалось крайне мало.Так появилась идея написания этой статьи. Итак, начнем! Сегодня я попытаюсь рассказат...

Embox на плате EFM32ZG_STK3200 Embox является сильно конфигурируемой RTOS. Основная идея Embox прозрачный запуск Linux программного обеспечения везде, в том числе и на микроконтроллерах. Из достижений стоит привести OpenCV, Qt, PJSIP запущенные на микроконтроллерах STM32F7. Конечно, запуск подразумевает,...

[Перевод] Эмуляция компьютера: интерпретатор CHIP-8 Меня, по ряду причин, всегда завораживала эмуляция. Программа, которая выполняет другую программу… Мне эта идея кажется невероятно привлекательной. И у меня такое ощущение, что тот, кто напишет подобную программу, не пожалеет ни об одной минуте потраченного на это времени....

Металингвистический совратитель Си. Опус I: Предварительные ласки >> Осторожно, модерн! 2 — 0.1. Спор на баксы и девчонок Предисловие Система макросов добавлена в язык программирования Си с целью абстрагирования часто повторяющихся синтаксических конструкций, и как следствие — снижения ментальной нагрузки при чтении и написании исхо...

[Перевод] Создаем собственный GPS-Трекер на технологии LoRa В этой статье вы узнаете, как создать собственный GPS-трекер с помощью микроконтроллеров Pycom LoPy, а также научитесь настраивать одноканальный LoRa Nano-Gateway. Здесь я изложу ключевые этапы со всеми необходимыми ссылками. Читать дальше →

Как работать с API Google Таблиц (Google Sheets API v4) на языке R с помощью нового пакета googlesheets4 Электронные таблицы по-прежнему остаются довольно популярным инструментом для работы с данными, а среди различных процессоров электронных таблиц наиболее популярными являются Google Таблицы. Во-первых, это бесплатный инструмент, во-вторых, функционал Google Таблиц достаточно...

zx – bash скрипты на javascript Bash широко используется в программировании и является превосходным инструментом, но и у него есть свои недостатки. Поэтому Google разработал пакет zx, который позволяет использовать bash внутри javascript / typescript и имеет около 17к звёзд на github. В данной статье буд...

Разработка приложения с использованием Python и OpenCV на Android устройстве В это статье я хочу показать пример того, как андроид устройство можно использовать для разработки на таких языках программирования как python с библиотекой opencv в среде VSCode (будет использован code-server). В конце статьи приведено небольшое сравнение производительнос...

Частичное применение и каррирование функций в Лиспе Одно из известных преимуществ Лиспа над другими языками программирования состоит в том, что в Лиспе проще, чем где бы то ни было, реализуются различные новые механизмы, появляющиеся в современных языках программирования. Причин тому несколько: это и гомоиконность Лиспа (един...

Статическая подписка с использованием шаблона Наблюдатель на примере С++ и микроконтроллера Cortext M4 Всем доброго здравия! В преддверии Нового года хочу продолжить рассказывать про использование С++ на микроконтроллерах, на этот раз попытаюсь рассказать про использование шаблона Наблюдатель (но далее я буду называть его Издатель-Подписчик или просто Подписчик, такой вот ка...

В семейство Renesas RA добавлена группа микроконтроллеров RA2L1 со сверхнизким энергопотреблением и улучшенной поддержкой сенсорного ввода Компания Renesas Electronics объявила о расширении серии 32-битных микроконтроллеров RA2 сразу 20 новыми моделями группы RA2L1. С учетом этого пополнения в семействе RA насчитывается 66 моделей. В универсальных микроконтроллерах RA2L1 используется ядро Arm Cortex -M23, ...

Пишем терминальный сервер для микроконтроллера на С Всем привет! В процессе работы над гексаподом AIWM я все чаще задумывался о каком-нибудь удобном интерфейсе для общения с ним. В результате тесной работы с Linux через терминал я подумал, а почему бы не использовать такой же интерфейс и в гексаподе? Я был очень удивлен, что ...

[Из песочницы] STM32 + CMSIS + STM32CubeIDE Здесь я расскажу как создать минимальный проект на CMSIS с использованием «родной» IDE для микроконтроллеров STM – STM32CubeIDE. Возможно STM32CubeIDE и обладает рядом недостатков, но у нее, на мой взгляд, есть несколько преимуществ – таких как проприетарность и бесплатнос...

DSP-процессоры: назначение и особенности Большинство из нас в повседневной жизни постоянно сталкивается с различными компьютерными системами: процессорами общего назначения (general-purpose, в основном x86) в ноутбуках и рабочих станциях, их мощными многоядерными версиями в датацентрах, мобильными процессорами в те...

Redis на практических примерах Redis — достаточно популярный инструмент, который из коробки поддерживает большое количество различных типов данных и методов работы с ними. Во многих проектах он используется в качестве кэшируещего слоя, но его возможности намного шире. Мы в ManyChat очень любим Redis и акт...

[Из песочницы] Koin – это Dependency Injection или Service Locator? Введение В Android-разработке для DI традиционно используют Dagger 2, очень мощный фреймворк с кодогенерацией. Но есть проблема: новичкам сложно его использовать. Сами принципы DI просты и понятны, но Dagger усложняет их. Можно жаловаться на поголовное падение грамотности пр...

[Перевод] Visx — коллекция графических примитивов для React-приложений, созданная в Airbnb После 3 лет разработки и 2,5 лет использования в продакшн-проектах Airbnb, после переписывания кода на TypeScript, мы рады представить вам официальный релиз коллекции графических примитивов visx 1.0  (раньше она называлась vx). Вот — страница проекта на GitHub. Документацию ...

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

[Перевод] Сборка собственного RPM-пакета, содержащего простую Go-программу Процесс развёртывания программ обычно состоит из множества этапов. Некоторые из этих этапов могут представлять собой довольно-таки сложные последовательности действий. В наши дни имеется широкое разнообразие инструментов, позволяющих создавать описания процессов развёртывани...

[Перевод] Знакомимся с NestJS Перевод статьи подготовлен в преддверии старта курса «Разработчик Node.js». У современных разработчиков есть много альтернатив, когда речь заходит о создании веб-сервисов и других серверных приложений. Node стал крайне популярным выбором, однако многие программисты предп...

[Из песочницы] Создание отказоустойчивой ИТ инфраструктуры. Часть 1 — подготовка к развёртыванию кластера oVirt 4.3 Вниманию читателей предлагается ознакомиться с принципами построения отказоустойчивой инфраструктуры небольшого предприятия в рамках одного ЦОДа, которые будут детально рассмотрены в небольшом цикле статей. Читать дальше →

[Перевод] Как левел-дизайнеры используют приёмы теории архитектуры для создания игровых уровней Теория архитектуры включает в себя множество аспектов и по своей сути является сплавом многочисленных художественных, социальных и психологических техник. Однако, вне зависимости от архитектурного движения или эпохи, одна идея всегда остаётся неизменной: архитектура — разу...

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

FreeBSD. Трансляции, тэги и якоря в PF Файрвол PF в ОС FreeBSD FreeBSD. Фильтрация трафика PF FreeBSD. Трансляции, тэги и якоря в PF <- Вы здесь Введение В прошлых статьях мы разобрали, что такое PF вообще, общие принципы построения правил. Узнали о таблицах и способах фильтрации трафика PF. И создали конфиг...

[Перевод] Работа с библиотеками KTX Когда вы используете Android Java API в Kotlin, к вам достаточно быстро приходит понимание, что вам не хватает некоторых фич Kotlin, которые делают написание кода намного проще и приятнее. Вместо того, чтобы писать свои собственные обертки и функции расширения для этих API, ...

Работа с СОМ-портом на Си в linux Телетайп, на который БЭВМ могли выводить и получать данные. Фото взято здесь. Каждый, кто постоянно занимается электроникой и программирует встраиваемые устройства, неизбежно сталкивается с необходимостью работы с СОМ-портом под линуксом. Недаром, моя статья "UART и с ...

Haproxy — программирование и конфигурирование средствами Lua Сервер Haproxy имеет встроенные средства для выполнения скриптов Lua.Язык программирования Lua для расширения возможностей различных серверов используется очень широко. Например, на Lua можно программировать для серверов Redis, Nginx (nginx-extras, openresty), Envoy. Это впо...

[Перевод] Убийства во имя армии США и видеоигр Армия США давно использует видеоигры для обучения и вербовки Два неожиданных союзника: армия США и индустрия видеоигр. Кто бы мог подумать? [перевод статьи из журнала Ars Technica от декабря 2008 г.] Разные подразделения армии США часто появляются в видеоиграх с самого мом...

Assembler Editor Plus: Первый проект Продолжение цикла статей про редактор ассемблера для ARM микроконтроллеров под компилятор GNU AS.Предыдущая статья Assembler Editor Plus: Установка Картинки под катом! Читать далее

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

Вызов кода Go из Dart с использованием cgo и Dart FFI на простом примере Ключевой мотивацией для написания данной статьи является факт сильного недостатка информации (особенно в русскоязычном сообществе) по использованию cgo и Dart FFI для использования Go из языка Dart.Язык Dart, не смотря на свою возрастающую популярность, на данный момент до с...

Смартфон OnePlus с 12 Гбайт ОЗУ показался в бенчмарке В базе данных популярного бенчмарка Geekbench появилась информация о флагманском смартфоне OnePlus 8, официальный анонс которого ожидается в ближайшее время. В тесте Geekbench появился смартфон семейства OnePlus 8 с кодовым обозначением IN2011. Говорится, что аппарат будет ф...

Беспроводная мини погодная станция с e-paper экраном на батарейках Приветствую всех читателей Habr! В своей сегодняшней статье хочу поделиться с вами своим новым устройством – датчиком температуры, влажности и давления с функцией предсказания погоды. Датчик работает на микроконтроллерах nRF52. Данный проект это логическое продолжение этого ...

Microsoft и Linux: краткая история эволюции непростых взаимоотношений Некоторые читатели Хабра, вероятно, не застали период взаимоотношений корпорации Microsoft с Linux, который можно охарактеризовать как «резкое неприятие». Но для многих из нас до сих пор несколько странно видеть новости и статьи об интеграции различных Open source-систем и ...

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

Замена для Android: операционная система Google Fuchsia OS прошла сертификацию Организация Bluetooth Special Interest Group, занимающаяся разработкой стандартов Bluetooth, а также сертификацией устройств, оснащённых поддержкой таких технологий, опубликовала информацию о сертификации операционной системы Google Fuchsia OS. Это указывает на то, что ...

[Из песочницы] Создание приложений с помощью Mediapipe Сегодня множество сервисов используют в своей работе нейросетевые модели. При этом из-за невысокой производительности клиентских устройств вычисления в большинстве случаев производятся на сервере. Однако производительность смартфонов с каждым годом растет и сейчас становится...

[Перевод] Разбираемся в моделях кода архитектуры x64 «Какой моделью кода мне воспользоваться?» — часто возникающий, но нечасто разбираемый вопрос при написании кода для архитектуры х64. Тем не менее, это довольно интересная проблема, и для понимания генерируемого компиляторами машинного кода х64 полезно иметь представление о м...

Debouncing с помощью React Hooks: хук для функций Здравствуйте! Меня зовут Игорь Шамаев, я главный инженер по разработке в команде SmartData. Занимаюсь fullstack-разработкой внутренней аналитической BI-системы. В нашей компании React принят в качестве основного стандарта для построения пользовательских интерфейсов. Как и бо...

Первые флагманы на Qualcomm Snapdragon 888 Pro выйдут в третьем квартале Китайские источники сообщают, что разогнанная версия однокристальной системы Qualcomm Snapdragon 888, которая получит название Snapdragon 888 Pro в данный момент проходит тестирование. Усовершенствованная модельная платформа napdragon 888 Pro появится во флагманских сма...

[Из песочницы] DLL & Python DLL & Python Недавно меня заинтересовала тема использования DLL из Python. Кроме того было интересно разобраться в их структуре, на тот случай, если придется менять исходники библиотек. После изучения различных ресурсов и примеров на эту тему, стало понятно, что примене...

Теперь вы можете установить Windows Subsystem for Linux (WSL) с помощью одной команды В последних сборках Windows Insider Preview вы можете установить все необходимое для запуска WSL, просто запустив wsl.exe --install. Компания Microsoft объявила, что эта функциональность теперь официально перенесена в Windows 10 версии 2004 и выше. Использование wsl –install...

Асинхронная работа с libusb 1.0 Несколько статей назад мы рассмотрели методику работы с USB-устройством при помощи библиотеки libusb. Данные в устройстве у нас формировались по таймеру, поэтому мы были не просто уверены, что рано или поздно они придут к нам, но даже могли предсказать, через какой срок это ...

«Морзянка сэр» или обзор составных функциональных блоков в CannyLab 2 Год назад, мне подарили мой первый контроллер Canny 3 Tiny, о чем я написал статью, из которой со временем вырос целый небольшой цикл. Все-таки опыты с этим контроллером стали в некотором роди моим хобби. Поэтому я решил отметить годовщину нашего знакомства очередной стать...

Маленькие Python для маленьких embedded-программистов: CircuitPython и MicroPython для MeowBit На Хабре уже немало писали про обучающий микрокомпьютер BBC micro:bit, который в 2016 раздали всем британским школьникам, и сейчас он продаётся по $15. С прошлого года появились в продаже и micro:bit v2, в которых ОЗУ расширена с 16 КБ до 128 КБ. Неизменным остался форм-факт...

Что нового в TestMace часть 1. Облачная синхронизация, обновленный интерфейс и многое другое Всем привет! После долгого перерыва TestMace вновь вылезает из норы, чтобы поведать миру о новостях, связанных с проектом. Если кто забыл либо не читал статью о нас, TestMace — это IDE для работы с API. Наша тулза ставит целью покрыть весь спектр работ с существующим API, к...

Небольшой гайд по выбору 3D-принтера для начинающих Поводом для написания данной статьи послужила статья “Я хотел купить недорогой 3D-принтер, но посмотрел YouTube и расхотел”, в конце которой автор просит ответить на несколько вопросов. Попробую ответить с точки зрения своего семилетнего опыта 3D-моделера и 3D-печатника. Для...

Процессор Intel Xeon 3-го поколения Ice Lake-SP 10 нм+ с 14 ядрами хорошо показывает себя в тестах Просочилось довольно много тестов процессора Intel Ice Lake-SP Xeon 3-го поколения, которые показывают в действии 14-ядерную 28-поточную модель и соответствующие результаты в различных тестах. 10 нм+ серия Xeon Ice Lake-SP будет выпущена в следующем году, как недавно подтвер...

[Из песочницы] Если моя машина мешает Разговор был примерно таким. Саня: «Купил китайских индикаторов, мечтаю устройство собрать, чтоб номер телефона светился, для машины. Только вот не знаю, как их подсоединить. Как-то к микроконтроллеру надо». Читать дальше →

Переезжаем на ClickHouse: 3 года спустя Три года назад Виктор Тарнавский и Алексей Миловидов из Яндекса на сцене HighLoad++ рассказывали, какой ClickHouse хороший, и как он не тормозит. А на соседней сцене был Александр Зайцев с докладом о переезде на ClickHouse с другой аналитической СУБД и с выводом, что ClickHo...

Дружим STM32 с LCD дисплеем 1604 по I2C шине (библиотека HAL) Привет, Хабр! В этой статье я хотел бы рассказать о своем опыте подключения LCD дисплеев к микроконтроллеру STM32 с использованием библиотеки HAL по I2C шине. Подключать буду дисплей 1602 и 2004. Они оба имеют припаянный I2C адаптер на основе чипа PCF8574T. Отладочной пл...

Используем Cura для печати на SLA Photon Оговорюсь сразу  что статья была первично была опубликована на хабре, решил что тут тоже может кого заинтересовать и решил продублировать...Как это бывает, решил изучить новые технологии 3д печати и купил себе 3D SLA принтер Photon, но его софт а именно слайсер (AnyCubic Pho...

[Перевод] Лучшие практики написания комментариев к коду Известный профессор МТИ Гарольд Абельсон сказал: «Программы нужно писать для того, чтобы их читали люди, и лишь случайно — чтобы их исполняли машины». Хотя он намеренно преуменьшил важность исполнения кода, однако подчёркивает, что у программ две важные аудитории. Компилято...

ФСТЭК создаст центр проверки операционных систем для госсектора Об этом пишет "КоммерсантЪ" со ссылкой на данные, опубликоанные на портале госзакупок. Исполнителя проекта выберут 2 марта, он должен завершить все работы к декабрю 2023 года. Основная цель проекта - повысить защищенность отечественных ОС на Linux и снизить возмож...

USB на регистрах: bulk endpoint на примере Mass Storage Еще более низкий уровень (avr-vusb) USB на регистрах: STM32L1 / STM32F1 USB на регистрах: interrupt endpoint на примере HID USB на регистрах: isochronous endpoint на примере Audio device В прошлый раз мы познакомились с общими принципами организации USB и собрали простое ...

АДСМ4. Жизненный цикл сетевого оборудования и архитектура системы автоматизации Продолжаем наш забег по сетевой автоматизации. Итак, сеть спроектирована, IPAM запущен. И вот-вот начнут съезжаться миллионы наших стоек. Будем готовиться к этому. Мы всё дальше от фантазий и абстрактных разговоров и ближе к практике. И всё же снова сделаем отступление. Боль...

Разработчик Google рассказал, что не так с Google Что не так с Android? Да по большому счёту, в общем-то, всё так. И по части функциональности, и по части безопасности, и по части быстродействия. Единственная претензия, которую зачастую предъявляют операционной системе Google, состоит разве что в том, что она – не iOS. Нет...

Неизвестный смартфон Xiaomi на чипе Snapdragon 875 появился в Geekbench В бенчмарке Geekbench появился неизвестный смартфон Xiaomi, в основе которого лежит однокристальная система Snapdragon 875.Устройство зарегистрировано в бенчмарке под кодовым названием Xiaomi M2012K11C. Согласно описанию чипа, его ядра работают на тактовой частоте 1.8 ГГц, 2...

Android. Surface Дисклеймер Данная статья предназначена для начинающих андроид разработчиков с небольшим опытом работы с видео и/или камерой, особенно тех кто начал разбирать примеры grafika и кому они показались сложными — здесь будет рассмотрен похожий код с упрощенным описанием основных ш...

Siri Remote против Salt Remote Необычный пульт для Apple TV. С 30 октября 2015 года, когда одновременно с четвертым поколение Apple TV на свет появился пульт дистанционного управления с тач-падом и поддержкой голосового ассистента Siri, и вплоть до сегодняшнего дня, мир делится на три неравные части: на т...

Microsoft оптимизирует ядро Linux для серверных ARM На конференции Linux Plumbers Conference 2020 разработчики Microsoft рассказали о своем экспериментальном проекте — оптимизации ядра Linux для серверных ARM-процессоров. С докладом выступил главный менеджер по разработке программного обеспечения Ян Бирман. По словам спец...

[Перевод] TMS1000: первый коммерчески доступный микроконтроллер Мы используем микроконтроллеры, даже не задумываясь об этом, в таких проектах, в которых когда-то нам пришлось бы работать со связкой из логических чипов 74-й серии. Но кто из нас когда-либо задумывался над эволюцией микроконтроллеров? Пора вернуться на несколько десятилет...

Vivo подтвердила подготовку смартфона Y70s с поддержкой 5G Сегодня было объявлено о VIVO Y70s, это первый 5G смартфон в серии Y. Предыдущие поколения VIVO Y были по цене ниже 2000 юаней ($281). Таким образом, новый смартфон может продолжить ту же ценовую политику этой серии. Также мы узнали, что VIVO Y70 будет работать на процессоре...

[Из песочницы] Автоматизация инструментов Qt Здравствуйте уважаемы хабровчане, не так давно я увлекся программированием на Qt и после написания нескольких программ встал вопрос о том, как развертывать программы на других компьютерах. Как выяснилось делать это не совсем удобно, поэтому я решил написать простенькую небол...

[Перевод] Разработка инструмента командной строки: сравнение Go и Rust Эта статья посвящена разбору моего эксперимента по написанию небольшого инструмента командной строки с использованием двух языков, в программировании на которых у меня не особенно много опыта. Речь идёт о Go и Rust. Если вам не терпится увидеть код и самостоятельно сравни...

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

[Перевод] Архитектурный шаблон MVI в Kotlin Multipaltform, часть 1 Около года назад я заинтересовался новой технологией Kotlin Multiplatform. Она позволяет писать общий код и компилировать его под разные платформы, имея при этом доступ к их API. С тех пор я активно экспериментирую в этой области и продвигаю этот инструмент в нашей компани...

Создание шутера с LeoECS. Часть 1 Друзья, это первая статья по фреймворку LeoECS из предстоящей серии, которая позволит вам быстрее понять, как работать с LeoECS в Unity и решить некоторые виды проблем, возникающих на практике. Все советы, изложенные в них, не представляют собою какой-то свод правил, способы...

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

Как вписать «свободную» PostgreSQL в суровое enterprise окружение Многие знакомы с СУБД PostgreSQL, и она отлично зарекомендовала себя на небольших инсталляциях. Однако тенденция к переходу на Open Source стала все более явной, даже когда речь идет о крупных компаниях и enterprise требованиях. В этой статье мы расскажем, как встроить Postg...

De-RISC создаст европейские процессоры RISC-V для космоса Космическая вычислительная техника сильно отличается от обычной: в таких аппаратах применяют микросхемы, хорошо защищённые от всевозможных излучений. По сложившейся традиции, в аэрокосмической сфере применяют, в основном, архитектуры PowerPC или SPARC. Но компании Cobham Gai...

Переназначаем порты на микроконтроллере Решил написать небольшой пост для новичков, чтобы не тратили так много времени, как я. Пациент: Ender 3 pro с микроконтроллером Atmega 1284p, прошивка marlin 1.1.9. Для всех остальных принтеров последовательность та же.Полезли вы, предположим, ковырять свой принтер, коротнул...

[Из песочницы] Создание микросервисной архитектуры с использованием single-spa (миграция существующего проекта) Это первая статья по в данной теме, всего их планируется 3: * Создание root application из вашего существующего проекта, добавление в него 3 микро-приложения (vue, react, angular) Общение между микро-приложениями Работа с git (deploy, обновления) Оглавление Общая час...

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

Изменения приложений в Windows 11 В июне была представлена операционная система Windows 11, интерфейс которой претерпел значительные изменения. Система содержит в себе улучшенные элементы от Fluent Design и WinUI. Предлагается современный удобный сенсорный интерфейс для отвечающих аппаратным требованиям устр...

[Перевод] Кунг-фу стиля Linux: великая сила make Со временем Linux (точнее — операционная система, которую обычно называют «Linux», представляющая собой ядро Linux и GNU-инструменты) стала гораздо сложнее, чем Unix — ОС, стоящая у истоков Linux. Это, конечно, неизбежно. Но это означает, что тем, кто пользуется Linux уже да...

Линус Торвальдс остался недоволен рядом моментов в использовании Rust для Linux В прошлом году разработчики ядра Linux предложили использовать Rust для нового встроенного кода. В марте 2021 года эта идея была частично реализована — в состав ветки linux-next, на которой будет базироваться Linux 5.13, включили начальный набор компонентов для разработки д...

Парсинг сайта кинотеатра на Golang Всем привет, в этой статье мы рассмотрим небольшой пример кода, написанный для сбора данных с сайта на популярном сегодня языке программирования Go. Эта статья будет особенно интересна тем, кто много слышал о Go, но пока еще не попробовал его самостоятельно. Для одного из...

Snapdragon 875 в Samsung Galaxy S21 набрал в бенчмарке меньше ... Похоже, впервые за долгое время новый флагман Samsung приятнее будет брать именно с Exynos.     Ожидается, что Samsung представит свою линейку Galaxy S21 в январе, и, по давней традиции, смартфоны будут иметь две версии: американская со Snapdragon 875 и европейска...

Snapdragon 875 в Samsung Galaxy S21 набрал в бенчмарке меньше ... Похоже, впервые за долгое время новый флагман Samsung приятнее будет брать именно с Exynos.     Ожидается, что Samsung представит свою линейку Galaxy S21 в январе, и, по давней традиции, смартфоны будут иметь две версии: американская со Snapdragon 875 и европейска...

Больше не тимлид: как не потерять себя и найти снова Вернёмся года на два назад, когда я был разработчиком. Что я думал? «Хочу стать тимлидом. Это круто, он решает все вопросы, получает больше денег, им становятся после сеньора». Тогда не было никого, кто сказал бы мне: это вообще про другое. Пришлось учиться на своих ошибках)...

[Перевод] Разработка MQ JMS приложения на Spring Boot Разработчики приложений, работающие на Java, при использовании интерфейса JMS, часто предпочитают работать со Spring Framework. Spring может упростить написание кода новых приложений, предоставляя шаблоны для общих паттернов (templates for common patterns) и успешно исполь...

Samsung готовит планшет на базе процессора MediaTek Helio P22T 2021 год только начался, а Samsung уже выпустила несколько новых смартфонов, в том числе флагманское семейство Galaxy S21. Теперь, похоже, компания готовится представить новые планшеты. Сегодня мы сообщали, что Samsung готовит 5G-планшет Galaxy Tab S7 Lite и показывали ренде...

Первый Apple Mac на ARM уже протестирован: сносная производительность даже через эмулятор Только мы сообщили о том, что разработчики стали получать свои Developer Transition Kit на базе Mac Mini с процессорами Apple A12Z, как в Сети появились первые результаты тестов систем на базе этих чипов. Напомним, что компания Apple решила отказаться от процессоров Intel и ...

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

[Перевод] Как выбрать подходящий модуль спутникового позиционирования для своего проекта Вы доделали свой новый проект, и теперь ваше детище живёт и передвигается по миру. И осталась только одна проблема – вам нужно знать его местоположение с достаточно неплохой точностью. К счастью, у нас есть системы спутникового позиционирования! При помощи готового модуля ...

[Из песочницы] Все этапы создания робота для следования по линии, или как собрать все грабли с STM32 Привет, Хабр! В этой публикации речь пойдет про мой опыт создания робота для соревнований, а именно следование по линии. Постараюсь рассказать все этапы от проектирования схемотехники и заказа печатной платы до алгоритма и программы. Гонка роботов по линии уже давно стала ...

Переделываем DSO138, или сделать что-то похожее на инструмент из игрушки На Али продается за очень недорого интересная игрушка – осциллограф под названием DSO138. Он снискал уже довольно большую популярность среди любителей электроники, но параметры этого приборчика, увы, позволяют его более-менее полноценно использовать только для отладки оч...

Как я начал делать модуль расширения для ADFS и попал в тупик Должен сразу признаться, что программист я не настоящий. То есть, когда-то я был и настоящим — в смысле, мне деньги платили именно за написание программ. Однако это было более пятнадцати лет назад, программы я писал, в соответствии с тогдашней модой, в основном, на Delphi (н...

[Перевод] Ванильный JavaScript и HTML. Никаких фреймворков. Никаких библиотек. Никаких проблем Используете для создания приложений Vue, React, Angular или Svelte? Я использую, и если вы тоже, и уверен, что вам уже давно не приходилось писать приложение, которое выводит информацию без этих прекрасных инструментов. Когда-то многие из нас писали веб-приложения только с...

[Перевод] Практика по Котлину: Создание веб приложений на React и Kotlin/JS От переводчика. Привет! Про Kotlin есть стереотип, будто бы это язык для разработки только под Android. На самом деле, это совсем не так: язык официально поддерживает несколько платформ (JVM, JS, Native), а также умеет работать с библиотеками для этих платформ, написанных на...

SerenityOS: Unix-подобная операционная система с кастомным ядром и графическим интерфейсом в стиле 90-х Пару лет назад в сети появилась информация о проекте Serenity — Unix-подобной операционной системе для архитектуры x86 с собственным ядром и винтажным интерфейсом. При этом возможности операционной системы заявлялись вполне современные. Это ОС, написанная с нуля, которая ...

Параметры операционных усилителей. Как измерить и какие возникают сложности? Операционный усилитель – одна из базовых схем аналоговой электроники, на основе которой можно строить сложные системы. Данный элемент присутствует почти во всех интегральных микросхемах: управление питанием (AC/DC, DC/DC, LDO…), АЦП, ЦАП, интерфейсы, синтезаторы частот, микр...

Настраиваем Continuous Integration для Jenkins и Bitbucket с werf Утилита werf создана так, чтобы её было легко интегрировать с любыми CI/CD-системами. Подробнее об этом процессе в общем случае читайте в эпилоге этой статьи, но основное её содержимое — практический пример по организации CI в Jenkins и Bitbucket. Подразумевается, что в р...

Найти порядок в хаосе ИТ: полезные ресурсы В предыдущей статье я поделился своим видением процесса построения базовой системы для организации собственного развития (применимой к сфере ИТ). В ней в общих чертах и весьма условно были представлены шаги, которые необходимо пройти, чтобы построить эту систему. Однако, хо...

Процессор Samsung Exynos 1000 может оказаться быстрее чипа Snapdragon 875 Не исключено, что с появлением флагманских мобильных процессоров следующего поколения компании Samsung, наконец, удастся обойти своего главного конкурента в лице Qualcomm. Речь идёт о чипах Exynos 1000 и Snapdragon 875, которые будут изготавливаться по 5-нанометровой техноло...

[Из песочницы] Пишем шейдеры кодом в Unity LWRP Введение Здравствуй, Хабр. Сегодня хочется рассказать немного о том, как можно быстро и безболезненно (почти) начать писать классические текстовые шейдеры в Unity с использованием Lightweight Rendering Pipeline (LWRP) — одним из примеров конвейера Scriptable Rendering Pipeli...

[Перевод] Краткое руководство по управлению питанием процессора Как центральный процессор может сокращать собственное энергопотребление? Основы этого процесса — в статье. Центральный процессор (CPU) спроектирован на бесконечно долгую работу при определенной нагрузке. Практически никто не проводит вычисления круглые сутки, поэтому больш...

Генераторы на корутинах C++ Я уже пару лет как развлекаюсь написанием различных программ на C++ с использованием корутин. Но до сего момента это были асинхронные приложения. Я активно использовал co_await, но ни разу еще мне не понадобился co_yield. И вот, после трех дней вынужденного ничегонеделанья в...

[Из песочницы] Вывод текста на OLED дисплей с контроллером SH1106 по шине SPI через библиотеку HAL Здравствуйте, уважаемые читатели. В своих разработках на микроконтроллерах STM32, для вывода осмысленной информации, я пользуюсь OLED дисплеями на чипе SSD1306. В последний раз пришел ко мне 1,3" SPI модель по демократичной цене — около 200руб. Первое, что бросилось в г...

Основой мини-ПК Intel Bean Canyon Lite служат процессоры, которых официально еще нет По данным источника, ассортимент компании Intel пополнили две модели мини-ПК NUC Bean Canyon Lite. Внешне они напоминают модели Bean Canyon, но имеют другую «начинку». Основой мини-ПК Bean Canyon Lite служат процессоры, которых официально еще нет в каталоге...

В Geekbench протестировали iPad Air 4-го поколения с чипом Apple A14 Несколько часов назад мы сообщали о тестировании устройства с чипом Apple A14 в бенчмарке Geekbench.В тот момент мы полагали, что речь идет о будущем представителе линейки iPhone 12, но, как оказалось, протестированным в бенчмарке девайсом был планшет.Об этом заявил авторите...

I. Введение в T-FLEX CAD и основные принципы моделирования Друзья!Перед вами первая часть нашей небольшой серии публикаций "Планирование и оптимизация порядка построения 3D модели", в которой будут рассмотрены базовые принципы работы в CAD системах и способы оптимизации процесса 3D моделирования. Данная информация будет особенно пол...

Новые цены на микроконтроллеры STM32 из свежих поставок Наверное уже многим надоело, что все кому не лень, пишут про очередной кризис в производстве микросхем, повышение отпускных цен на радиодетали и микроэлектронику или невозможность их приобрести вследствие нарушившихся цепочек поставок из-за пандемии COVID-19, майнинговой л...

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

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

Проблема «CPU против GPGPU»: Тупиковое будущее? На примере ASUS Идея этого краткого материала-рассуждения родилась из одного чудесного факта. В процессе оптимизации Premiere Pro и After Effects, и уже после того, как от меня уехала ASUS TUF GeForce RTX 3090 24GB (обзор делал мой коллега Денис Зайченко здесь) я узнал, что из последнего с ...

Redux Toolkit как средство эффективной Redux-разработки В настоящее время разработка львиной доли веб-приложений, основанных на фреймворке React, ведется с использованием библиотеки Redux. Данная библиотека является самой популярной реализацией FLUX-архитектуры и, несмотря на ряд очевидных преимуществ, имеет весьма существенные ...

30 лет ядру Linux: поздравление от PVS-Studio 25 августа 2021 года ядру Linux исполняется 30 лет. За это время ядро пережило множество изменений, так же, как и мы. Сегодня это огромный проект, работающий на миллионах различных устройств. Предыдущую проверку мы делали 5 лет назад, поэтому не можем пропустить такое событи...

[Перевод] Как быть билингвом в Data Science В этой статье я хочу продемонстрировать R Markdown — удобную надстройку для программирования вашего проекта как на R, так и на Python, позволяющую программировать некоторые элементы вашего проекта на двух языках и управлять объектами, созданными на одном языке, с помощью дру...

Как я SCADA-систему на Linux переводил В этой статье я бы хотел рассказать о том, что Windows проекты на Delphi возможно перевести на Linux в разумные сроки и с разумными трудозатратами. Что такое SCADA-система, рассказывать не буду, а перейду сразу к делу.Runtime ядро SCADA работает под Windows в качестве сервис...

Very simple real time operating system: что это и зачем нужно? В своей предыдущей статье я вскользь упомянул, что использую в проекте операционную систему реального времени собственной разработки vsrtos, которая по внешнему API похожа на FreeRTOS. Так зачем же нужно было ее разрабатывать, и когда стоит сделать выбор в ее пользу вместо F...

USB Mass Storage BOT чиним multi LUN у STM32 Попалась задача в проекте реализовать, чтобы по USB микроконтроллер прикидывался несколькими дисковыми устройствами для MicroSD, встроенной EEPROM и нескольких страничек оперативной памяти. Решил, что вполне логично, пойти по пути наименьшего сопротивления, попробовав запуст...

Google не готова запускать свою ОС для ПК У Google есть довольно много операционных систем, таких как Android, Chrome OS и их индивидуальные варианты. Долгое время эксперты ждали, когда Google наконец-то представит свою собственную операционную систему для ПК, будь то просто Android или, что более вероятно, просто C...

Заставляем компьютер выводить общие законы физики из наблюдений Как правило, компьютеры в естественных науках занимаются либо получением чисел из чисел, либо выводом формул из формул. Попытаемся решить более экстравагантную задачу — из набора численных данных вывести формулы общих физических законов, причём не только неизвестные параметр...

Исследование возможных заимствований и нарушений условий лицензирования в Java-коде на GitHub Меня зовут Ярослав Голубев, я работаю в JetBrains Research, в лаборатории методов машинного обучения в программной инженерии. Некоторые мои коллеги уже писали здесь о своих проектах (например, о подсказках для онлайн-курсов). Общая цель нашей группы — сделать работу программ...

DDR5, PCIe 5 и неравнозначные ядра. Подробности о процессорах Intel Adler Lake Известный ресурс Notebookcheck опубликовал подробности о процессорах Intel Adler Lake, полученные, как отмечается, эксклюзивно от «OEM-источников». Эти данные достаточно подробно характеризуют перспективные CPU Adler Lake, которые вроде бы должны выйти в сле...

Мой MikroTik – моя цифровая крепость (часть 2) Статья является продолжением первой части, посвящённой организации практической безопасности сетей, построенных на оборудовании MikroTik. До этого уже даны общие рекомендации по настройке оборудования, а также подробно рассмотрены вопросы безопасности L1 и L2 уровней. В тек...

[Перевод] Детектор космических лучей. Часть 3: завершение и тесты В первой части серии мы разобрали, что такое первичные и вторичные космические лучи, рассмотрели способ, которым будем их регистрировать и познакомились с проектом CosmicWatch. В предыдущей статье мы вкратце разобрали принцип работы детектора, после чего скомпоновали и про...

[Перевод - recovery mode ] Программирование GPU на Java Получение доступ к GPU из Java раскрывает огромную мощь. Здесь рассказывается как GPU работает и как получить доступ из Java. Программирование устройства графического процессора (GPU) является заоблачным миром для Java программистов. Это понятно, так как обычные задачи для ...

Что такое Windows PowerShell и с чем его едят? Часть 3: передача параметров в скрипты и функции, создание командлетов Во второй части цикла рассматривались основы языка программирования PowerShell, а сейчас стоит разобраться с использованием написанного на нем кода для задач администрирования. Самый очевидный способ это сделать — запустить сценарий. Кроме него существует возможность созда...

Делаем страницу на React с базой сотрудников при помощи Airtable и Quarkly Слышали про такой инструмент, как Airtable, но не знали, с чего начать? Тогда приглашаем в мир визуального программирования построения БД! Этим постом мы начинаем цикл обучающих статей, в которых будем давать практические примеры работы с нашим инструментом Quarkly. В этом у...

[Из песочницы] Собираем DIY шлюз для Zigbee устройств Вступление Пока крупные производители конечных устройств Zigbee в борьбе за кошельки пользователей имитируют поддержку оборудования сторонних производителей, группы энтузиастов изучают стандарты протоколов и изобретают "альтернативные" всеядные программные и аппара...

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

[Перевод] DIY-зарядник для аккумуляторов ноутбуков на базе контроллера MP26123/MP26124 Это не первый мой проект по разработке зарядного устройства для батарей ноутбуков. Отмечу, что в первом проекте я использовал Max1873. Но для контроля заряда пришлось использовать микроконтроллер ATtiny. Все бы ничего, но здесь требовалось написать специфический код, что ус...

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

Эксперименты с микроконтроллерами в Jupyter Notebook Jupyter Notebook — любимый инструмент-среда для data scientist'ов, аналитиков, инженеров, математиков, студентов и даже для нас — самых обычных ученых в экспериментальной физике. Этот инструмент предназначен для работы с интерпретируемыми языками и удобного графического пре...

Программисты, ходите на собеседования Картинка взята из видеоролика с канала «Воинствующие Аметисты» Около 10 лет я работал системным программистом под Linux. Это модули ядра (kernel space), различные демоны и работа с железом из пространства пользователя (user space), различные загрузчики (u-boot и др.), прош...

Samsung и Intel разогнали ядро автономной сети 5G до 305 Гбит/с Samsung Electronics объявила о значительном достижении в показателях производительности ядра автономной (SA) сети 5G, чего она достигла благодаря партнёрству с Intel. Полученная на практике скорость обработки данных ядром 5G SA Core составила 305 Гбит/с на сервер, что, напри...

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

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

В ядре Linux 5.13 появится начальная поддержка ARM-процессора Apple M1 Разработчик Гектор Мартин (Hector Martin) предложил интегрировать в ядро Linux первый набор патчей, подготовленных проектом Asahi Linux, в рамках которого осуществляется проведение работ по адаптации Linux для компьютеров Mac на базе ARM-процессора Apple M1. Упомянутые патчи...

Разработка круговых интерфейсов. Часть 2. Перенос библиотеки с JavaScript на QML Оглавление Введение Библиотека круговых интерфейсов v2.0 Круговая CAPTCHA Перенос библиотеки с JavaScript на QML Демонстрационное мобильное приложение Заключение Введение Предыдущая статья была вводной к вопросу разработки круговых интерфейсов. В ней рассмотрены определение,...

Micro Property — минималистичный сериализатор двоичных данных для embedded систем. Часть 2 Некоторое время назад я опубликовал свою статью о разработке велосипедного велосипеда, в которой описал причины, побудившие меня этим заняться. Если вкратце, то мне была нужна миниатюрная библиотека для микроконтроллеров с сериализатором двоичных данных и последующей переда...

[Из песочницы] Пишем на языке С/C++ в Linux под KolibriOS Вступление KolibriOS – миниатюрная операционная система, ядро и большинство программ которой написано на ассемблере. Это, конечно же, не значит, что на других языках программирования писать для KolibriOS нельзя. Данная статья — инструкция по настройке toolchain'а для Linux. ...

ECS в UI в клиенте World of Tanks Blitz Данная статья является продолжением выступления Евгения Захарова на летней конференции С++ Russia, где была описана разработка пользовательского интерфейса с использованием архитектуры ECS (Entity-Component-System) вместо традиционного наследования и часть устройства UI в&nb...

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

«Хамелеон», которого мы создали и приручили Речь, конечно, пойдет не о харизматичных ящерках, а о нашем собственном инструменте автоматизированного тестирования. Представляем вашему вниманию кейс создания фреймворка «Хамелеон» и рассказ о его функциональности. Его появлению предшествовало 15 лет практики тестирования...

Обязательно ли назначать на должность Тимлида Старшего разработчика? Введение. В данной статье был проведен анализ рынка тимлидов и он показывает, что 63% компании закрывают позицию на должность тимлида внутренними сотрудниками, а 23% компании закрывают как внутренними, так и внешними сотрудниками. Часто встречал такую картину, когда старшего...

Fortinet Security Fabric на практике. Часть 2. FortiSwitch Приветствуем! В нашей прошлой статье мы описали общую концепцию построения сети на продуктах компании Fortinet - Fortinet Security Fabric. Практически все продукты из этой концепции мы уже описывали. Неосвещенными остались только FortiSwitch и FortiAP. Сегодня мы хотим расск...

Что может пойти не так с Data Science? Часть 1: сбор данных Сегодня существует 100500 курсов по Data Science и давно известно, что больше всего денег в Data Science можно заработать именно курсами по Data Science (зачем копать, когда можно продавать лопаты?). Основной минус этих курсов в том, что они не имеют ничего общего с реально...

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

Как синхронизировать сотни таблиц базы в Kafka, не написав ни одного продюсера Привет, Хабр! Меня зовут Сергей Бевзенко, я ведущий разработчик Delivery Club в команде Discovery. Наша команда занимается навигацией пользователя по приложению Delivery Club: мы отвечаем за основную выдачу ресторанов, поиск и всё, что с этим связано. Я расскажу про Kafka...

Hello NXP Zigbee World И снова здравствуйте. Эта статья является продолжением статьи Hello NXP JN5169 World. Если в прошлый раз мы постигали основы микроконтроллера JN5169, его периферию, очереди и таймеры, то сегодня будем постигать основную фишку этого микроконтроллера - работу в ZigBee сетях. С...

Знакомство с Node-RED и потоковое программирование в Yandex IoT Core В этой статье я хочу разобрать один из самых популярных опенсорс-инструментов, Node-RED, с точки зрения создания простых прототипов приложений с минимумом программирования. Проверим гипотезу о простоте и удобстве таких средств, а также рассмотрим взаимодействие Node-RED с о...

[Перевод] Руководство Google по стилю в C++. Часть 2 Часть 1. Вступление Часть 2. Заголовочные файлы … Все мы при написании кода пользуемся правилами оформления кода. Иногда изобретаются свои правила, в других случаях используются готовые стайлгайды. Хотя все C++ программисты читают на английском легче, чем на родном, приятн...

Устройство идентификации сотрудников для системы электронного табелирования. (Finger scanner) Устройство идентификации сотрудников для системы электронного табелирования. (Finger scanner)В данном ролики пойдет рассказа о очередном проекте группы вконтакте по разработке устройств на базе микроконтроллеров (ссылка ниже). Обратился заказчик с описанием задания сделать у...

По данным ams, NanEyeC — самый маленький в мире модуль цифровой камеры Австрийская компания ams, специализирующаяся на выпуске сенсоров, на днях объявила выпуске одного из самых маленьких и легких датчиков изображения разрешением 100 000 пикселей (320 х 320 пикселей) с цифровым видеовыходом. Датчик подходит для использования в мобильн...

[Из песочницы] Первые шаги в Spring, Rest API, акцент на PUT в связке с фронтендом Немного о себе: На данный момент я студент Skillbox и прохожу курс “Java-разработчик”. Не в коем случае не реклама, рассказываю немного о себе. Начал учить джаву с мая 2019 года, до этого немного самостоятельно изучал HTML, CSS и JS. Собственно, подтолкнуло меня на написани...

SLAE — Security Linux Assembly Expert Exam Security Linux Assembly Expert — онлайн-курс и экзамен по основам 32-битного языка ассемблера процессоров семейства Intel в Linux-системах в контексте информационной безопасности. Курс будет полезен пентестерам, инженерам по информационной безопасности и всем, кто желает ра...

Intel выпустила собственную операционную систему mOS. Но пока это пре-альфа и ориентирована вовсе не на обычные ПК Как сообщают источники, компания Intel выпустила собственную операционную систему. Называется она mOS (multi-OS) и, конечно, не претендует на лавры Windows или Linux. mOS — это операционная система, предназначенная для суперкомпьютеров и масштабируемых систем. На...

Основой суперкомпьютера Cray Shasta для ВМС США будут процессоры AMD EPYC с общим числом ядер 290 304 По сообщению источника, в рамках проводимой в США программы модернизации суперкомпьютеров в суперкомпьютерном центра ВМС США будет развернута система Cray Shasta, пиковая теоретическая производительность которой оценивается в 12,8 PFLOPS. Основой этого суперкомпьютера ...

Калькулятор получил обновление в Windows 11 Microsoft выпустила обновление для приложения «Калькулятор» в Windows 11, и, как и ожидалось, этот небольшой редизайн приводит приложение в соответствие с дизайном остальной операционной системой. Калькулятор теперь имеет темный режим и, конечно же, теперь соответствует внеш...

[Из песочницы] Собственный софт-процессор на ПЛИС с компилятором языка высокого уровня или Песнь о МышЕ Собственный софт-процессор на ПЛИС с компилятором языка высокого уровня или Песнь о МышЕ — опыт адаптации компилятора языка высокого уровня к стековому процессорному ядру. Распространенной проблемой для софт-процессоров является отсутствие средств разработки для них, особен...

Процесс создания игровой 3D модели Hard Surface Решил я тут написать небольшую (огромную) статью, о том как я делаю игровые модели. В общем начал я делать это оружие, и пришла такая мысль, что можно попробовать описать весь процесс, вдруг кому-то пригодиться. Это не только моя первая статья, ещё и моя первая работа в каче...

Windows XP исполняется 20 лет: история создания одной из самых успешных ОС в истории Корпорация Microsoft готовится к массовому переводу пользователей ноутбуков и десктопов на Windows 11, которая пришла на смену «десятке». Время бежит быстро, так что не стоит удивляться, что последней уже около 6 лет — впервые ее представили в 2015 году. В целом, Windows ...

Программируем на iPad Pro Можно ли заменить программисту MacBook на iPad Pro? Программисты для работы часто предпочитают использовать MacBook. Ноутбуки Apple имеют консоль Bash и схожи с Linux, при этом предлагают плавный и приятный интерфейс, чего до сих пор не может дать нам Linux (даже Ubuntu 19.1...

[Перевод] Приёмы неблокирующего программирования: введение в compare-and-swap В первой части этого цикла статей мы рассмотрели теорию, стоящую за одновременным доступом в моделях памяти, а также применение этой теории к простым чтениям и записям в память. Правда, этих примитивов оказывается недостаточны для построения высокоуровневых механизмов синхро...

Как компилировать Marlin 2 с помощью PlatformIO CORE. Более простой способ для людей, хотя бы слегка знакомых с командной строкой. Везде описан способ компиляции Marlin 2 c помощью VSCode, Atom или SublimeText, но на самом деле все эти программы лишние и добавляют свои собственные глюки в процесс сборки, реально необходим всего лишь PlatformIO Core, который запускается из командной строки.Если уже стоит...

Приемопередатчик HC-12 и датчик температуры DS18b20 на AVR-ассемблере По мотивам содержания моей книжки «Программирование микроконтроллеров AVR: от Arduino к ассемблеру» была опубликована статья о подключении дисплеев к AVR с применением только «чистого» ассемблера. Под «чистым» имеется в виду наличие только простейшего редактора кода и програ...

Контроллер АСУНО с ВЕБ интерфейсом настроек Это моя первая статья на Хабр. Статья посвящена разработке и некоторым особенностям контроллера, поэтому вопросы, относящиеся к организации работы сервера не рассматриваются в данной статье. Но для того, чтобы лучше понять работу контроллера АСУНО некоторые моменты все же бу...

[Из песочницы] Разбор UI/UX на примере прототипа в Figma и основные принципы Кому адресована статья В данной публикации я хочу помочь начинающим и «не очень» бизнес-аналитикам, менеджерам проектов, владельцам продуктов, желающим сделать свой первый сайт и всем-всем, кому надо сделать макет сайта или приложения, а он не знает с какой стороны подступит...

Kotlin Multiplatform. Работаем с многопоточностью на практике. Ч.2 Доброго всем времени суток! С вами я, Анна Жаркова, ведущий мобильный разработчик компании «Usetech». В предыдущей статье я рассказывала про один из способов реализации многопоточности в приложении Kotlin Multiplatform. Сегодня мы рассмотрим альтернативную ситуацию, когда м...

[recovery mode] Сборка ядра Linux 5.12.10 c LLVM 12 + Clang и LTO оптимизацией Технический прогресс не стоит на месте, появляются новые компьютерные архитектуры, компиляторы становятся умнее и генерируют более быстрый машинный код. Современные задачи требуют все более креативного и эффективного решения. В данной статье пойдет речь, на мой взгляд, про ...

ITSM и DevOps: некоторые практические рекомендации по совместному применению Уже много написано об IT service management (ITSM) и DevOps. Большая часть статей посвящена противопоставлению ITSM и DevOps или даже тому, как DevOps «убивает» ITSM. К счастью, некоторые ведущие эксперты по DevOps высоко оценивают необходимость в совместной раб...

[Перевод] SuperRT — чип для рейтрейсинга на Super Nintendo В продолжение темы, представляем вашему вниманию перевод оригинала статьи от Бена Картера. Ссылки на видео по этой статье: Короткий трейлер Подробное описание и технические детали У меня наконец-то появились результаты работы над проектом, которым я занимался в свободное...

Как расширить Spring своим типом Repository на примере Infinispan Это моя первая статья, в ней я попытаюсь описать полученный мною практический опыт работы со Spring Repository под капотом фреймворка. Готовых статей про эту тему я в интернете не нашёл ни на русском, ни на английском, были только несколько репозиториев исходников на github,...

Exynos 2100 смог догнать Snapdragon 888 в тестах Geekbench — разные версии Galaxy S21 будут равны по производительности Согласно предыдущим утечкам, с выпуском процессора Exynos 2100 компания Samsung впервые за долгое время сможет составить достойную конкуренцию Qualcomm в области флагманских чипсетов для смартфонов. Свежие результаты тестирования корейского чипа в Geekbench демонстрируют его...

Пробрасываем порт UART из Linux в Windows через SSH-соединение Не так давно в нашем сервисе All-Hardware произошло знаковое событие. Если раньше порт UART был подключён только к терминалу внутри браузера, то теперь можно установить в Windows специальный драйвер, через который этот порт будет проброшен в вашу локальную систему. Теперь ра...

[Перевод] Детектор космических лучей. Часть 2: сборка и пробное тестирование В первой части серии мы разобрали, что такое первичные и вторичные космические лучи, а также в общих чертах рассмотрели устройство, с помощью которого будем регистрировать последние. В этой же статье мы подробнее рассмотрим принцип работы детектора мюонов, после чего пере...

Материальный дизайн. Создание анимаций в Kivy Приветствую всех любителей и знатоков языка программирования Python! В этой статье я покажу, как работать с анимациями в кроссплатформенном фреймворке Kivy в связке с библиотекой компонентов Google Material Design — KivyMD. Мы рассмотрим структуру Kivy проекта, использован...

Точные и быстрые вычисления для чисел с плавающей точкой на примере функции синуса. Часть 2: libm Продолжаю цикл статей по работе с плавающей точкой. В первой статье я дал небольшое математическое введение и показал самый простой и очевидный способ вычисления синуса с примерами программ с разными «подводными камнями». Сегодня статья будет немного другая по стилю. Здесь н...

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

[Перевод] Лучшие практики Kubernetes. Корректное отключение Terminate Лучшие практики Kubernetes. Создание небольших контейнеров Лучшие практики Kubernetes. Организация Kubernetes с пространством имен Лучшие практики Kubernetes. Проверка жизнеспособности Kubernetes с помощью тестов Readiness и Liveness Лучшие практики Kubernetes. Настройка зап...

Почти детективная история одной «кровавой» ошибки Дополнение статьи «Размещение кучи FreeRTOS в разделе CCMRAM для STM32», и в продолжение серии статей про различные полезности для STM32 (1, 2 и 3), хочу обратить внимание на одну особенность работы с CCM RAM памятью, которая может быть причиной совершенно не очевидных оши...

[Перевод] О масочных регистрах В наборе команд AVX-512 были представлены восемь так называемых масочных регистров [1] – с k0 [2] по k7. Они пригодны для использования с большинством операций АЛУ и позволяют выполнять операции по маске над элементами векторов с обнулением или слиянием данных в регистре-при...

Пайка, C++, светодиоды — часовой стрим Геннадия «Крэйла» Круглова Управлять светодиодом — это счастье. Ещё большее счастье — смотреть на него в микроскоп. Даже просто зажечь светодиод — уже приносит радость. Но готов поспорить — эта задача окажется сложнее, чем вы думали.Привет, меня зовут Крэйл. Я — разработчик аппаратной части Яндекс.Ста...

WSL эксперименты. Часть 1 Привет, хабр! В октябре OTUS запускает новый поток курса «Безопасность Linux». В преддверии старта курса делимся с вами статьёй, которую написал один из наших преподавателей — Александр Колесников. В 2016 году компания Microsoft представила IT сообществу новую технологи...

В 71% смартфонов, проданных в этом году, будет искусственный интеллект Специалисты аналитическая компания Strategy Analytics утверждают, что производители смартфонов быстро внедряют искусственный интеллект (ИИ) в эти устройства. Искусственный интеллект используется в различных функциях смартфонов, таких как оптимизация энергопотребления, о...

Как можно обучить детей программированию? Чем раньше ребенок начнет учиться программированию, тем лучше Apple, как известно, воспитывает программистов iOS еще на школьной скамье, в чем компании помогает приложение Swift Playgrounds. Как это происходит? Например, ученик хочет программировать дроны от Parrot или устро...

«Микрон» и НИИМА «Прогресс» выпустят 32-битный микроконтроллер с ядром RISC-V и встроенной ГОСТ-криптозащитой для IoT «Микрон», российский производитель и экспортер микроэлектроники, и НИИМА «Прогресс», дизайн-центр России по разработке цифровых и цифро-аналоговых чипов, разработают и произведут первый отечественный 32-х разрядный ...

[Перевод] Разработчики не могут исправить ошибки управленцев Мне постоянно попадаются статьи, в которых разработчиков упрекают за нежелание вникать, зачем нужна их работа, и доказывают им, что это неправильно – вслепую вносить изменения, не разбираясь, какая за этим стоит цель. Звучат призывы в духе «оглянитесь вокруг, не уходите с го...

iPhone 12 будет таким же мощным, как MacBook Pro 15. Но нужно ли это? У многих есть вопросы к быстродействию iPhone с iOS 13. Новый чип может все исправить Мы много слышали о том, что ждать от iPhone в этом году, которых пока что обобщают под названием iPhone 12. Скорее всего, их внешний вид будет похож на iPhone 4 и текущие модели iPad Pro; т...

С 2022 года процессорные ядра Arm Cortex лишатся поддержки 32-разрядных вычислений В следующем году топовые однокристальные системы для смартфонов будут содержать ядра Cortex-A78 и Cortex-X1. Они должны принести внушительный прирост производительности. После них Arm выпустит процессорное ядро под кодовым именем Matterhorn, а за ним последует ядро Maka...

Xamarin.Forms. Личный опыт использования В статье речь пойдет о Xamarin.Forms на примере живого проекта. Кратко поговорим о том, что такое Xamarin.Forms, сравним с похожей технологией WPF, увидим, как достигается кроссплатформенность. Также разберём узкие места, с которыми мы столкнулись в процессе разработки, и до...

«Железяка 1» — робот из «обычного» металлического конструктора Небольшой дисклеймер. Эта статья нашлась в моих старых "запасах", и она написана несколько лет назад. Но на фоне новости, что компания, которая производит "донора" для робота решила выпустить набор на Arduino, решил показать, что можно сделать похожее самостоятельно. Благо и...

Делаем примеры для STM32, собирающиеся в разных средах разработки Как я уже несколько раз упоминал в прошлых статьях, я один из разработчиков сервиса All Hardware, через который любой желающий может удалённо поработать с различными отладочными платами, которые туда выкладывают производители микроконтроллеров. По умолчанию, в каждую плату з...

[Из песочницы] Web Scraping. Часть 1 Введение Всем привет. Недавно у меня возникла идея о том, чтобы поделиться с интересующимся кругом лиц о том как пишутся скраперы. Так как большинству аудитории знаком Python все дальнейшие примеры будут написаны на нём. Данная часть рассчитана для того, чтобы познакомить те...

Геймеры осознали силу ядер: четырёхъядерные процессоры стремительно теряют популярность Согласно последним данным статистики Steam за сентябрь, в сегменте процессоров наблюдается сдвиг в сторону использования чипов с большим количеством ядер. В частотности пользователи игрового сервиса стали чаще выбирать для своих систем 6-, 8- 10-, 12, 16-ядерные процессоры. ...

Мой MikroTik – моя цифровая крепость (часть 3) Статья является продолжением первой и второй частей, посвящённых организации практической безопасности сетей, построенных на оборудовании MikroTik. Ранее были рассмотрены общие рекомендации, безопасность уровней L1, L2 и L3. Настало время показать варианты реализации централ...

Рожденные в карантине: беспроводной датчик и все-все-все. Битва роботов в конце В этой статье я c удовольствием хочу поделится с Вами универсальной платой, которую легко можно использовать для: метеостанции, беспроводного датчика температуры\влажности на солнечной батарее или без нее; автоматического полива цветов на солнечной батарее; безопасным пус...

[Перевод] Почему разработчики влюбляются в функциональное программирование? Функциональное программирование (ФП) существует уже лет 60, но до сих пор оно всегда имело достаточно узкую сферу использования. Хотя компании, меняющие мир, вроде Google, полагаются на его ключевые концепции, средний современный программист знает об этом феномене очень мало...

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

Учим железки разговаривать, или ESP32 DAC и немного таймера В ходе разработки одного очень интересного устройства (эх, лишь бы силенок хватило) я решил, что будет неплохо, если устройство это будет говорящим. Как нельзя кстати здесь пригодилось наличие в целевом микроконтроллере, ESP32 компании Espressif Systems, двухканального 8-бит...

[Перевод] Дизайн-токены способны на большее: создаем единый источник информации о компонентах UI Термином «дизайн-система» в IT давно никого не удивишь. Компании систематизируют дизайн продуктов, придумывая свои или используя чужие инструменты для управления стилями, паттернами и компонентами.  Badoo не является исключением: с помощью нашей дизайн-системы Cosmos мы подд...

Как LoRaWAN помогает строить современный интернет вещей LoRaWAN — технология, которая быстро набирает популярность в сфере решений интернета вещей. При этом для многих клиентов остается малоизученной и экзотической, из-за чего вокруг нее существует множество мифов и заблуждений. В 2018 году в России были приняты поправки в зако...

Ядро Linux 5.9 изучили, выяснилось, что оно поддерживает 99% популярного PCI-оборудования на рынке На Хабре недавно публиковалось две статьи о новом ядре Linux. В одной из них говорилось о том, что драйвер AMD Radeon составляет 10,5% ядра Linux 5.9, в другом перечислялись новые возможности и функции. На днях появилась еще и информация о том, что это ядро поддерживает 99%...

Как разрабатываются моды для Unity-игр. Часть 2: пишем свой мод В этой части на примере мода для Beat Saber мы рассмотрим общие принципы разработки модов для Unity-игр, узнаем, какие есть трудности, а также познакомимся с Harmony — библиотекой для модификации кода игр, которая используется в RimWorld, Battletech, Cities: Skylines и многи...

[Перевод] Переосмысляем «настольный компьютер» как концепцию Мысли о новом направлении пользовательского интерфейса рабочего стола Просто задумайтесь о каком-то серьезном деле, прежде чем выйти на теннисный корт. Из «Macintosh» (1984) компании Apple Computer. Долговечная «настольная» операционная система существует у нас почти 40...

Создание отказоустойчивой ИТ инфраструктуры. Часть 3. Организация маршрутизации на роутерах VyOS Основная цель статьи – показать процесс установки и настройки виртуальных маршрутизаторов VyOS на кластере oVirt, для организации связи на уровне L3 между внутренними и внешними сетями. Также в статье будут рассмотрены вопросы, связанные с особенностями настройки выхода в Ин...

ESP32 и файловая система SPIFFS SPIFFS – (Serial Peripheral Interface Flash File System) файловая система флеш-памяти, подключаемой по последовательному периферийному интерфейсу. Простыми словами: есть микроконтроллер ESP32 (рисунок 1), у него есть встроенная перезаписываемая энергонезависимая NOR-память,...

PHP и регулярные выражения: азы для новичков В преддверии старта нового потока по курсу «Backend-разработчик на PHP», а также смежного с ним курса «Framework Laravel», хотим поделиться статьей, которую подготовил наш внештатный автор. Внимание! данная статья не имеет отношения к программе курса и будет полезна только ...

«Раз, два, три – ёлочка гори!» или мой первый взгляд на контроллер CANNY 3 tiny «Новый год» это мандарины, оливье, выходные и конечно же подарки. Как вы, уже наверняка догадались я неожиданно стал обладателем микроконтроллера CANNY 3 Tiny. Правда я особо DIY электроникой не увлекаюсь и последний раз сам пытался что-то подключить к контроллеру почти сем...

Путь одной команды от «велосипедов» до IoT-платформы Привет, Хабр! Мы, команда Rightech, наконец-то решили начать вести блог. У нас накопилось много опыта в построении высоконагруженных IoT-систем, и мы решили, что просто обязаны им делиться! Совсем недавно прошел запуск публичной версии нашей платформы RIC (Rightech IoT Clou...

[Из песочницы] Микросервисы или модульные системы? Как заказчику выбрать подход к IT-архитектуре продукта Микросервисная и модульная системы — это типы архитектуры IT-решений. При работе с модулями мы дорабатываем коробочную версию существующего IT-продукта. Под коробочной версией имеем в виду монолит, готовую систему с ядром, которая поставляется всем заказчикам одинаково, «ка...

[Перевод] 10 ведущих технических трендов 2021 года, на которые стоит обратить внимание программистам Для индустрии разработки программного обеспечения и для программистов 2020 год стал значительным годом больших прорывов во многих областях. Пандемия значительно ускорила перевод самых разных процессов в цифровую среду, в результате тренды, о которых мы сегодня поговорим, буд...

[Перевод] Язык моделирования Alloy и приключения с параллельными запросами к базе данных Данная статья описывает небольшой пример того, как использование языка моделирования Alloy может помочь при разработке программного обеспечения. О качестве программного обеспечения и инструментарии В Typeable мы придаем огромное значение качеству программного обеспечения и ...

[Перевод] Реверс-инжиниринг неизвестного микроконтроллера Сложная завязка Предыстория... В рамках моей работы над реверс-инжинирингом электронных eInk-ценников мне довелось столкнуться с интересной проблемой. Конкретная компания (Samsung Electro Mechanics/SoluM) перешла с использования сторонних чипов, происхождение которых мне у...

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

Когда вы учили произношение английских слов, вы материли Уильяма Кэкстона, даже если не знали, кто это вообще такой В ХIV веке в английском языке начался процесс, который называют Великим сдвигом гласных. Латинское произношение и нижненемецкая фонетика стали вытесняться новыми вариантами. В ходе этого процесса два долгих гласных стали дифтонгами, а еще пять сильно изменились. Но в сред...

Intel IPU: клиент отдельно, провайдер отдельно Давным-давно, когда сервера были большими, нагрузка на них ложилась монолитно: операционная система (одна-единственная), системные процессы и пользовательские задачи расходовали общие аппаратные ресурсы. Потом появились виртуальные машины, разделившие нагрузку логически на х...

Размером с ноготь. Intel показала свой самый необычный процессор Про процессор Intel Lakefield мы в последнее время вспоминали не раз. В частности, когда познакомились с первыми результатами тестирования этого CPU в 3DMark. Напомним, Lakefield — уникальный CPU как для Intel, так и для рынка в целом. Во-первых, он имеет нечётное...

Разработка своего устройства от А до Я. Часть 1: От концепции до макета Задумывались ли вы когда-нибудь о том, чтобы разработать собственное электронное устройство, но не знали, с чего начать? Тогда приглашаем вас к прочтению данной статьи, в которой мы постараемся осветить весь процесс создания своего электронного устройства – от концепции до ...

Разработка «простого генератора напряжения» в соответствии с ГОСТ Р МЭК 61508 (IEC 61508) В данной статье будут рассмотрены необходимые шаги для создания устройства, отвечающего общим требованиям функциональной безопасности (ФБ). А также будет предложена архитектура простейшего «безопасного» (safety) генератора напряжения. Так как управляя напряжением, можно уп...

Windows 10X будет поставляться с MacOS-подобными обоями Windows 10X, новая операционная система, основанная на модульном проекте Microsoft Windows Core OS, недавно была продемонстрирована вместе с Surface Neo. Хотя Windows 10X была создана и оптимизирована для устройств с двумя экранами, она будет распространяться и на традиционн...

Как собрать паука в Godot, Unigine или PlayCanvas С наступившим 21-м годом 21-го века. В данной статье пробегусь по особенностям работы в трёх игровых движках, на примере написания кода для паукообразного средства передвижения. Читать дальше →

Алгоритм нахождения 1000 ферзей на шахматной доске Недавно разбирался в старых своих наработках/скриптах и наткнулся на скрипт где решалась задача о ферзях. Собственно это послужило написанию статьи о том как проходили этапы написания его алгоритма. Возможно пригодится начинающим программистам для решения похожих задач (к...

Немного про устройство современного радио на примере HackRF One Приветствую, Habr! Некоторое время назад в поле моего зрения очень часто попадало множество статей, видеороликов о теме SDR трансиверов. Тема представляет интерес и сегодня. Большой популярностью среди радиолюбителей и других, разного рода, «технарей» пользуются устройства H...

WSN-LTE шлюз на CC1310 и WP8548. Часть 1 Приветствую, Habr! В данной статье рассмотрен процесс разработки Wireless Sensor Network (WSN) шлюза для передачи данных от беспроводных датчиков на сервер через мобильную связь. В качестве начинки будем использовать Sub-1GHz SoC CC1310 и программируемый модуль WP8548 от Sie...

Книга «Java Concurrency на практике» Привет, Хаброжители! Потоки являются фундаментальной частью платформы Java. Многоядерные процессоры — это обыденная реальность, а эффективное использование параллелизма стало необходимым для создания любого высокопроизводительного приложения. Улучшенная виртуальная машина J...

Stm32 + USB на шаблонах C++. Продолжение. Делаем CDC Продолжаю разработку полностью шаблонной библиотеки под микроконтроллеры Stm32, в прошлой статье рассказал об успешной (почти) реализации HID устройства. Еще одним популярным классом USB является виртуальный COM-порт (VCP) из класса CDC. Популярность объясняется тем, что обм...

Как перестать бояться и полюбить 1-wire Мне очень нравится протокол 1-wire своей простотой и удобством для применения в системах «умный дом». Недавно я писал программную эмуляцию одной микросхемы и погрузился во внутренности этого протокола. Чтобы накопленные знания могли принести пользу не только мне, я решил нап...

Postgresso 30 Мы продолжаем знакомить вас с самыми интересными новостями PostgreSQL. Этот выпуск получился с некоторым уклоном в средства диагностики. Нет, не только. Например: Хардверные ускорители: FPGA В небольшом сообщении Энди Эликотта (Andy Ellicott) в блоге Swarm64 3 hardware acc...

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

Санкциям назло: Huawei представила 28-нм чип HiSilicon ATV с поддержкой LiteOS На прошлой неделе TSMC подтвердила, что прекратила принимать заказы на новые чипы от Huawei с 15 мая после введения нового правительственного постановления США. Но всё же кремниевое подразделение китайского телекоммуникационного гиганта HiSilicon официально представило новый...

Что такое Windows PowerShell и с чем его едят? Часть 5: Доступ к внешним объектам В операционных системах Windows поддерживаются различные объектные инфраструктуры. Для доступа к ним можно использовать интерфейсы прикладного программирования (API), но разработка полноценных приложений не всегда оправдана. В PowerShell существуют специальные командлеты, ...

Инструменты Domain Driven Design Синий кит — отличный пример того, как проектирование сложного проекта пошло не по плану. Кит внешне похож на рыбу, но он млекопитающее: кормит детенышей молоком, у него есть шерсть, а в плавниках до сих пор сохранились кости предплечья и кистей с пальцами, как у сухопутных. ...

Функциональные кривые высокого качества (часть III) Заключительная часть цикла статей, посвященных новому типу кривых и поверхностей, разработанному в компании C3D Labs в качестве нового функционала поверхностного моделирования для геометрического ядра C3D Modeler.В этой части приводятся примеры практического применения C3D F...

[Из песочницы] Измеритель температуры и влажности на контроллере Arduino c отображением значений на LCD дисплее Недавно я начал изучать программирование микроконтроллера Arduino. После того, как я выполнил несколько базовых упражнений (мигание светодиодом, работа с дискретными и аналоговыми входами, вывод информации на ЖК дисплей и т.д.) мне захотелось сделать какое нибудь полезное ус...

Мой MikroTik – моя цифровая крепость (часть 4) Статья является продолжением первой, второй и третьей частей, посвящённых организации практической безопасности сетей, построенных на оборудовании MikroTik. Ранее были рассмотрены общие рекомендации, безопасность уровней L1, L2 и L3, реализация централизованного логирования...

С «эмулируй» сборку приложения ARM на x86 процессоре на примере Qt Мощность современных процессоров растёт, как в стационарных компьютерах, так и в различных embedded устройствах, на борту которых процессоры на базе ARM с операционной системой linux. Сегодня в рамках данной статьи мы запустим эмулятор процессора ARM на x86 компьютере и в нё...

Django Rest Framework для начинающих: создаём API для чтения данных (часть 1) Меня зовут Стас Гаранжа, я выпускник курса «Python-разработчик» в Яндекс.Практикуме. Я хочу помочь начинающим разработчикам, которые приступили к изучению Django Rest Framework (DRF) и хотят разобраться, как устроен этот фреймворк. Я готовлю цикл статей, в которых расскажу о...

[Из песочницы] Разработка отладочной платы для К1986ВЕ1QI (авиа) Несколько лет назад я познакомился с российскими микроконтроллерами фирмы Миландр. Это был 2013 год, когда инженеры бурно обсуждали первые результаты ФЦП «Развития электронной компонентной базы и радиоэлектроники» на 2008-2015 годы. На тот момент уже был выпущен контроллер...

Использование диаграммы вариантов использования UML при проектировании программного обеспечения Проектирование – один из важных шагов при разработке программы, который очень часто игнорируется начинающими разработчиками. Обычно они пытаются удержать всё в голове или, в лучшем случае, записать некоторые важные сведения на листе бумаги. Как результат, у них нет чёткого п...

Создание Discord – бота на .NET Core с деплоем на VPS-сервер Привет, Хабровчане! Сегодня вы ознакомитесь со статьей, в которой будет рассказано, как создать бота, используя C# на .NET Core, и о том, как его завести на удаленном сервере. Статья будет состоять из предыстории, подготовительного этапа, написания логики и переноса бот...

Эволюция Docker. Часть 1 20 марта 2013 года на конференции PyCon 2013, Соломон Хайкс (CEO компании dotCloud) выступил с пятиминутной презентацией The future of Linux Containers. В ней широкой общественности впервые была представлена внутренняя разработка компании dotCloud под названием Docker, а спу...

Multifactor — российская система многофакторной аутентификации Долгое время считалось, что классический метод аутентификации, основанный на комбинации логина и пароля, весьма надёжен. Однако сейчас утверждать такое уже не представляется возможным. Всё дело — в человеческом факторе и наличии у злоумышленников больших возможностей по «уго...

[Перевод] Использование возможностей TypeScript в JavaScript без написания TypeScript-кода Я — большой любитель TypeScript. По возможности я стараюсь использовать этот язык в своих проектах. TypeScript даёт разработчику отчёты об ошибках и проверку типов в JavaScript и TypeScript-коде. Кроме того, тот, кто пишет на TypeScript, может пользоваться удобными возможнос...

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

Кому в микроконтроллере жить хорошо? В каком году — рассчитывай, в какой земле — угадывай, задачился вопросами. Насколько ARM быстрее AVR? Какая разновидность протокола Modbus более «быстрая»? ASCII или RTU? Читать дальше →

Модельно-ориентированное проектирование на службе у специалиста по электроприводу. Часть 1. Моделирование Всем привет! На Хабр есть несколько статей, в которых рассказывается об использовании модельно-ориентированного проектирования (МОП) при разработке различных систем, в том числе и системы управления электродвигателем.Мне тоже захотелось попробовать этот подход в деле при том...

Как работают кодировки текста. Откуда появляются «кракозябры». Принципы кодирования. Обобщение и детальный разбор Данная статья имеет цель собрать воедино и разобрать принципы и механизм работы кодировок текста, подробно этот механизм разобрать и объяснить. Полезна она будет тем, кто только примерно представляет, что такое кодировки текста и как они работают, чем отличаются друг от друг...

Разогнанный процессор AMD Ryzen 3 3300X может оказаться быстрее даже Intel Core i9-9900KS В разгоне до 4,6 ГГц бюджетный процессор с четырьмя ядрами может оказаться быстрее многоядерных тяжеловесов

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

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

Расширяем Laravel за счет собственных компонентов Задача Добавить в приложение систему оповещения пользователей через СМС-сообщения с возможностью выбора провайдера. Решение Оптимальным решением, на мой взгляд, является добавление собственного компонента. Компонент — блок программы с четко определенным набором действий (ко...

ARM представила мощные ядра Cortex-A78 и Cortex-X1, а также ... ARM анонсировала свои новейшие разработки в области мобильных процессоров, которые будут использоваться при создании топовых платформ и флагманов 2021 года. Речь идет о ядрах Cortex-A78 и Cortex-X1, а также графическом ускорителе Mali-G78. Именно эти решения найдут свое прим...

Raspberry Pi Pico на МК RP2040: начало и первые шаги. Что есть поесть за $4 Начало Raspberry Pi Foundation всегда знает чем порадовать или удивить нас, а так же как подталкивать других производителей на интересные шаги и решения для хорошей конкуренции. В четверг (рыбный день, кстати) 21-ого января 2021 года был анонсирован выпуск нового микроконтро...

[Перевод] Матёрый программист 1. Матёрый программист Матёрый программист хорошо распоряжается своим временем и продуктивностью. Матёрый программист знает, что обслуживание — это такая же работа, как и первоначальное написание, а код всегда занимает больше времени, чем вы думаете. Матёрый программист зн...

SQL HowTo: пишем while-цикл прямо в запросе, или «Элементарная трехходовка» Периодически возникает задача поиска связанных данных по набору ключей, пока не наберем нужное суммарное количество записей. Наиболее «жизненный» пример — вывести 20 самых старых задач, числящихся на списке сотрудников (например, в рамках одного подразделения). Для различны...

Hello NXP JN5169 Zigbee World: правильное подключение и переподключение устройств Доброго времени суток! Сегодня мы будем продолжать изучении ZigBee на примере микроконтроллеров NXP JN5169. В первой статье я рассказывал про периферию микроконтроллера, во-второй - как подключиться к сети ZigBee и делать там базовые операции. Основная тема сегодняшней ...

Пинбол-машина Fischertechnik с микроконтроллером BBC Microbit или Raspberry Pi Pico Давно не брал я в руки Dremel Пора продолжить тему предыдущих статей про творческий подход к конструкторам Фишертехник, смотрите предыдущую публикацию Конструктор Fischertechnik и Dremel: допиливаем моторы, сервоприводы и пневматическую присоску Есть такой замечательный конс...

Смартфон OnePlus 8 5G с 12 Гбайт ОЗУ протестирован в Geekbench Тестирование в бенчмарке Geekbench 4.0.0 прошёл смартфон OnePlus 8 с поддержкой мобильной связи пятого поколения (5G). Анонс этого аппарата, а также двух его собратьев в лице OnePlus 8 Lite и OnePlus 8 Pro ожидается в ближайшее время. Данные Geekbench говорят об использовани...

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

Samsung Galaxy Note 20+ замечен в базе Geekbench с новым чипом Snapdragon 865 Plus Один из предполагаемых будущих смартфонов семейства Galaxy Note появился в базе данных популярного бенчмарка Geekbench. Речь идёт о Galaxy Note 20+, аппаратной основой которого, по всей видимости, станет новый производительный процессор компании Qualcomm. Южнокорейская компа...

Создан первый в мире работающий процессор на основе ДНК Разработка южнокорейских ученых впервые описана в статье Programmable DNA-Based Boolean Logic Microfluidic Processing Unit ("Программируемый микрожидкостный процессор для работы с двоичной логикой на основе ДНК), которая была опубликована в последнем выпуске научного жу...

[Перевод] 7 расширений для VS Code, установив которые, вы не захотите выходить из редактора …Даже простейшие инструменты могут давать людям возможность делать великие дела. Биз Стоун, «Решайся! Заряд на создание великого от основателя Twitter» Одно из различий между очень хорошими и хорошими программистами заключается в том, какие инструменты они используют. Подбо...

[Перевод] 6 способов значительно ускорить pandas с помощью пары строк кода. Часть 2 В предыдущей статье мы с вами рассмотрели несколько несложных способов ускорить Pandas через jit-компиляцию и использование нескольких ядер с помощью таких инструментов как Numba и Pandarallel. В этот раз мы поговорим о более мощных инструментах, с помощью которых можно не т...

Samsung Galaxy A51 5G протестировали в GeekBench Серия Galaxy A от Samsung в настоящее время является самой продаваемой благодаря обилию моделей, разумным ценам и интересным спецификациям.Сейчас нам известно, что Samsung готовит к дебюту смартфон Galaxy A51 5G. Одним из подтверждений существования девайса оказалось его тес...

Что такое Harmony OS, когда она выйдет и какие устройства поддерживает Современный рынок смартфонов фактически поделён на два сегмента. К одному относятся аппараты на базе Android, а к другому – iPhone, которые работают только и исключительно на iOS. Этот передел произошёл уже давно, и до недавнего времени не вызывал сомнений в его честности. ...

Как мы используем многопоточность в геометрическом ядре Вопрос о многопоточности задают даже далёкие от разработки люди, когда речь заходит о производительности 3D-приложений, в частности систем проектирования (САПР). Поддержка многопоточности закладывается в геометрическом ядре системы. Поэтому мы решили на своём примере показат...

Пример практического использования модулей Доброго времени суток, друзья! ES6-модули, использующие синтаксис «import/export», являются довольно мощным инструментом и достойным конкурентом компонентам популярных фреймворков. Позвольте мне продемонстрировать это на примере рисования различных фигур на холсте. Исто...

[Перевод] Процесс: Создание Vue 3 Уроки, полученные от написания следующей главной версии Vue.js Автор: Эван Ю (Evan You) В течение прошлого года команда Vue работала над следующей основной (major) версией Vue.js, которую мы надеемся выпустить в первой половине 2020 года (эта работа продолжается на момент н...

Патент AMD раскрывает дизайн гибридного чипа с CPU и FPGA под одной крышкой ПЛИС (FPGA) не столь универсальны и просты в программировании как CPU, но зато способны существенно ускорять специфические задачи. В руках умелого инженера ПЛИС могут осовободить ЦП от широкого спектра нагрузок. Intel ещё в 2014 году занялась интеграцией Xeon и FPGA по заказ...

[Перевод] PC-3000 Flash: восстанавливаем данные с карты microSD Сегодня многие современные устройства NAND флэш-памяти используют архитектуру нового типа, у которой интерфейс, контроллер и чипы памяти интегрированы в один общий керамический слой. Мы называем такую структуру монолитной. До недавнего времени все карты памяти типа SD, So...

Как увеличить стек FPU Что-то не получаются у меня заголовки статей. Потому, что на вопрос «Как увеличить стек FPU?» очевидно же следует прямой и ясный ответ – да никак. Это же аппаратное устройство. Даже если бы и удалось увеличить его стек – тогда пришлось бы переделывать систему команд, рассчит...

[Перевод] Мой подход по управлению временем/задачами используя VSCode Вот и наступил 2020 год. И как всегда в начале года мы ставим себе амбициозные цели на год, обещаем заняться планированием, стать лучше и т.п. Мы начинаем использовать новый крутой сервис по управлению временем и задачами, о котором прочитали накануне. Но проходит пару недел...

[Из песочницы] Обязанности администратора Salesforce: Что должно быть сделано и когда Привет, Хабр! Представляю вашему вниманию перевод «Salesforce administrator responsibilities: What needs to be done and when» автора David Taber. Что администратор Salesforce делает весь день, неделю или месяц? Вот общее краткое изложение. Salesforce администраторы отвечаю...

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

Карта бизнес-процессов маркетплейса Разработку платформы для e-commerce проекта нужно всегда начинать с описания бизнес-процессов, и лишь потом переходить к IT-реализации. IT — это необходимое техническое решение, которое позволяет автоматизировать все описанное. Есть часть важных процессов, которые являю...

Три разных GPU AMD с архитектурой mRDNA используются в новых SoC Exynos: первая информация об отличиях Ранее Samsung и AMD подтвердили, что они использовали архитектуру графического процессора RDNA при создании новой однокристальной системы Exynos. Теперь же появились новые подробности. По словам пользователя южнокорейского форума Clien, Samsung использует три типа графи...

Измеритель расстояния на HC-SR04 без микроконтроллера В этой статье пошагово соберем схему измерителя расстояния из нескольких микросхем стандартной логики. Читать далее

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

[Перевод] Первый взгляд на Tekton Pipelines Kubernetes быстро превращается из платформы оркестровки Docker в облачную операционную систему общего назначения. Благодаря операторам, Kubernetes получает возможность изначально управлять высокоуровневыми концепциями и бизнес-процессами, что означает, что вы больше не управ...

Windows 10 работает на iPhone Хотели бы вы сделать так, чтобы Ваш iPhone мог гораздо большее, чем просто запускать приложения магазина Apple? Группа независимых разработчиков работает над похожим приложением. UTM – это новое приложение, которое использует QEMU (программное обеспечение для виртуализации) ...

[Перевод] Погружение в алгебру глубоких басов: прекрасные звуки музыкального программирования Красота этих объектов заключена как в текстуре звука, так и в элегантности кода Музыканты несколько столетий заигрывали с технологиями, раздвигая границы искусства – от терменвокса до экспериментов с плёнкой середины прошлого века. Несмотря на эти увлечения, попытки генера...

[Перевод] Send My: Произвольная передача данных по сети Apple Find My  Можно загружать произвольные данные с устройств, не подключенных к интернету, широковещательно посылая сообщения Find My по технологии BLE (Bluetooth с низким энергопотреблением) на расположенные поблизости устройства Apple, которые затем загружают данные для вас Мы выпусти...

Swift 5.3: Что нового? Привет Хабр! Язык программирования Swift обладает большой популярностью ввиду его использования в написании приложений под iOS, поэтому его развитие представляет интерес для всех занятых в этой области. Давайте посмотрим что нового приготовил разработчикам Swift версии 5.3....

Обновление для IDE EmBitz 1.11 На официальном форуме появилось обновление для IDE EmBitz 1.11. Оно включает в себя расширенный список поддерживаемых микроконтроллеров STM32, обновленные версии библиотек CMSIS, SPL, HAL и LL, а также текущую версию компилятора gcc-arm-none-eabi-9-2020-q2-update и GDB серве...

[Из песочницы] Nuxt + Django + GraphQL на примере Предисловие Nuxt — "фреймворк над фреймворком Vue" или популярная конфигурация Vue-based приложений с использованием лучших практик разработки на Vue. Среди них: организация каталогов приложения; включение и преконфигурация самых популярных инструментов в виде Nux...

[Из песочницы] 6 самых распространённых ошибок разработчиков при написании HTML и CSS Привет, Хабр! Представляю вашему вниманию перевод статьи «The 6 most common mistakes developers when writing HTML and CSS» автора Stas Melnikov. Использование атрибута placeholder вместо элемента label Часто разработчики используют атрибут placeholder вместо элемента label....

Поддержка российского процессора впервые включена в основную ветку ядра Linux Интеграция в информационный проект мирового уровня - это признание Baikal со стороны мирового ИТ-сообщества и удобство для тех, кто использует или планирует использовать решения на базе SoC BE-T1000 (Baikal-T).Версия Linux 5.8-rc1, вышедшая на прошлой неделе, признана релизо...

14 практических советов по использованию Tableau Всем привет, меня зовут Меркурьев Михаил, я продуктовый аналитик в ManyChat. Год назад мы решили использовать Tableau как основной BI инструмент в компании и столкнулись с рядом проблем, касающихся того, что нужно наладить эффективную работу с инструментом для аналитиков, ме...

[Перевод] Простейшее решение «проблемы промежуточных устройств»: организация работы SCTP поверх UDP в ядре Linux Возможность организации работы SCTP поверх UDP (известная ещё как инкапсуляция SCTP-пакетов в UDP-пакеты) определена в RFC 6951 и реализована в пространстве ядра Linux начиная с версии ядра 5.11.0. Поддержку этой возможности планируется включить в Red Hat Enterprise Linux (R...

[Перевод] Создатель Node.js анонсирует замену — Deno Из множества способов программирования компьютеров языки сценариев — самый простой и практичный вариант. Среди них язык сценариев веб-браузера (JavaScript) является самым быстрым, наиболее популярным и единственным, в котором применяется процесс промышленной стандартизации...

[Перевод] Vue 3 Composition API: Ref или Reactive Сейчас, когда я пишу эту статью, мы все ближе к релизу Vue 3. На мой взгляд самое интересное наблюдать как воспримут и будут применять его другие разработчики. У меня была возможность поиграть с Vue 3 в последние несколько месяцев, но я знаю есть те, у кого такой возможнос...

[Перевод] Реализация SOLID и слоистой архитектуры в Node.js с TypeScript и InversifyJS Привет, Хабр! Предлагаю вашему вниманию перевод статьи Implementing SOLID and the onion architecture in Node.js with TypeScript and InversifyJS автора Remo H. Jansen В этой статье мы рассмотрим архитектуру, известную как слоистая (onion). Слоистая архитектура — подход к пост...

Книга «Система модулей Java» Привет, Хаброжители! Создать надежное и безопасное приложение гораздо проще, если упаковать код в аккуратные блоки. Система модулей в Java представляет собой языковой стандарт для создания таких блоков. Теперь вы можете контролировать взаимодействия различных JAR и легко об...

Мощный процессор в PlayStation 5 и Xbox Series X — это отчасти минус. Разработчики не хотят делать совместимые с текущим поколением игры Консоли нового поколения имеют немало общего с текущими приставками, но есть и кардинальные отличия. К примеру, у устройств нового поколения очень быстрые SSD, а у PlayStation 5 и вовсе уникальная подсистема хранилища. Ещё одно важное отличие, о котором часто забывают,...

M1 не подкачал. Насколько лучше будет следующий чип Apple? Похоже, что компания идет на рекорд не только по мощности, но и по физическим размерам процессора. Apple продолжает двухлетний перевод «маков» с процессоров Intel на свои собственные. Чип Apple первого поколения M1, который фактически является мобильным A14 «на стероидах»...

SoC Qualcomm Snapdragon 8cx нового поколения с ядрами Gold+ потягается с Apple M1 Apple недавно начала отказываться от процессоров Intel для своих устройств Mac и начала переход на собственную SoC Apple Silicon, начиная с однокристальной системы Apple M1. В ближайшее время компания планирует полностью перейти на собственную платформу Apple Silicon. И...

87 граммов, камера разрешением 5 Мп и 13 минут полета. DJI представила свой самый маленький дрон Компания DJI представила свой самый компактный дрон. Новинка называется RoboMaster Tell Talent, ее габариты – 98 х 92,5 х 41 мм, а масса – 87 граммов. Устройство ценой 240 долларов выпущено в рамках образовательной программы DJI Education. Дрон оснащен 5-ме...

«Крупнейшее обновление в истории». Вышло новое ядро Linux 5.8 В минувшее воскресенье состоялось очередное обновление стабильной ветки ядра операционной системы Linux — до версии 5.8. Как сказал Линус Торвальдс, ядро Linux версии 5.8 — это «крупнейшее обновление в истории». Однако стоит сразу оговорить, что в отличие от предыдущих релиз...

Несколько интересных идей для онлайн-бизнеса Если вы думаете, что бизнес в Интернете ограничивается продажей электроники, косметики вещей и бижутерии, то вы глубоко заблуждаетесь. В этой статье вы найдете несколько интересных вариантов, как можно зарабатывать в онлайне, открыв собственное доходное дело. Обучение в онл...

Py4J – мост между Python и Java Название Py4J можно встретить разве что в списке библиотек, используемых PySpark, но не стоит недооценивать данный инструмент, который обеспечивает совместную работу Python и Java. В этой статье будет кратко описана работа Py4J, рассмотрен пример использования и перечислен...

USB4: все тот же USB? В конце 2020 года ожидается выход устройств с поддержкой интерфейсов нового поколения USB4/Thunderbolt 4. Данные интерфейсы похожи, однако имеют ряд принципиальных отличий. Среди таких отличий можно выделить наиболее значимое: спецификации на USB4 общедоступные и любой жела...

Опыт работы с карт-принтерами, часть 1 Данная статья будет полезна тем, кто начинает работу с карт-принтерами(Evolis Primacy и Smart-51) и кодировкой NFC карт типа Mifare Classic и Mifare DESFire EV2. В первой части мы опишем общее впечатление от работы с карт-принтерами, а также проблемы с которыми нам пришлось ...

[Перевод] Перенос Quake 3 на Rust Наша команда Immunant любит Rust и активно работает над C2Rust — фреймворком миграции, берущим на себя всю рутину миграции на Rust. Мы стремимся автоматически вносить в преобразованный код на Rust улучшения безопасности и помогать программисту делать это самому, когда не сп...

Транскомпилируемые языки: проекты конвертации код-в-код Источник: Ward Cunningham Транспиляция — это конвертация кода одного языка в другой. С помощью специального транспилера (транскомпилятора) один язык программирования общего назначения можно перенести на любой другой язык программирования общего назначения. Если необходимо...

Нужна ли программисту этика? Хочу рассмотреть ставший вдруг актуальным вопрос. Цифра с каждым годом всё больше входит в нашу жизнь, а значит, результатами труда программистов и всех представителей сферы IT пользуется всё больше людей. Но последние события, связанные с распостранением коронавируса и пос...