Крошечный веб-сервер на ESP32

Удалённый доступ делает любые DIY-устройства удобнее и мобильнее — особенно если управлять ими можно через Wi‑Fi и обычный браузер. В этой статье на примере ESP32 показано, как развернуть простой веб‑сервер, который позволяет контролировать устройство через веб-интерфейс. Рассматриваются оба сценария — подключение к существующей сети и работа в режиме точки доступа — а также приводятся подробности реализации, включая настройку, обработку запросов и генерацию HTML-страниц.

Продолжение


Управляем потоками в Linux: от stdin до stderr

Работа с потоками ввода-вывода — одна из основ, без которой не обойтись при написании скриптов под Linux. В этой статье на простых примерах показано, как устроены stdin, stdout и stderr, зачем нужны файловые дескрипторы 0, 1 и 2, и как управлять выводом с помощью операторов редиректа. Поговорим о том, как отделять ошибки от основного вывода, логировать пайплайны, передавать данные в команды и обрабатывать ввод с тайм-аутом.

Читать далее


Как читать научные статьи

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

Перейти к статье


Как ваш мозг вас обманывает: тестировщики и когнитивные искажения

Мы уверены в своей объективности и следуем методикам тестирования, но даже самые опытные QA-специалисты не застрахованы от когнитивных искажений. Эта статья показывает, как особенности мышления — такие как эффект подтверждения, искажение доступности и эффект якоря — могут незаметно влиять на решения, и предлагает конкретные стратегии, чтобы сделать тестирование более надёжным, осознанным и объективным.

Узнать про искажения


Самодельная аэромышь с мультимедийным управлением

Иногда самые интересные проекты рождаются из остатков компонентов и желания сделать что-то своими руками. В этой статье автор делится пошаговой инструкцией по созданию аэромыши с мультимедийным управлением на базе ESP32-C3 и гироскопа. Без 3D-принтера, с корпусом из пенокартона, но с полноценной функциональностью: от управления курсором до переключения треков и регулировки громкости. Рассматриваются все этапы — от пайки и сборки до загрузки кода и настройки BLE, а также даны файлы для 3D-печати корпуса для тех, кто захочет повторить проект в более аккуратном виде.

Перейти к DIY-гайду


Как NGINX обрабатывает TCP/UDP

Как NGINX работает с HTTP-трафиком — известно многим, а вот обработка TCP и UDP часто остаётся за кадром. Эта статья объясняет, как устроена работа с низкоуровневыми соединениями через stream-модули: от приёма запроса и контроля доступа до SSL, анализа содержимого и логирования. Рассматриваются все ключевые фазы обработки и даются примеры конфигураций, включая использование njs для динамического анализа и фильтрации трафика.

Читать далее


Как работают dict, slots и weakref в Python (и зачем это знать)

Словари, слоты и слабые ссылки — не самые очевидные, но крайне важные механизмы, лежащие в основе объектной модели Python. Эта статья показывает, как __dict__ обеспечивает гибкость, но может быть неэффективен, как __slots__ экономит память и ускоряет доступ к атрибутам, и как weakref помогает управлять временем жизни объектов без утечек. Полезный обзор для тех, кто хочет писать более производительный и аккуратный код на Python.

Читать обзор


Как malloc() и free() управляют памятью в C

Вызов malloc() кажется простым — запросил память и получил указатель. Но за этим стоит сложный механизм управления, перераспределения и повторного использования памяти. В статье объясняется, как именно работает malloc() и free() в связке с glibc, почему память не всегда возвращается ОС, как устроена фрагментация хипа и чем mmap() отличается от sbrk(). Разбор дополнен примерами, выводами из strace и даже реализацией простого кастомного аллокатора, что делает материал особенно полезным для тех, кто хочет понимать Си на низком уровне.

Продолжение


19 лучших инструментов для тестирования игр

Отличный материал, особенно полезный для QA-специалистов в геймдеве. Статья охватывает весь цикл тестирования игр — от юнит- и UI-тестов до мониторинга производительности, сетевого трафика и управления багами. Удобная структура, краткое, но ёмкое описание инструментов, упоминание специфики (Unity, Unreal, мобильные, браузерные игры, AAA) и примеры использования делают подборку практичной и применимой в реальной работе. Особенно ценно, что указаны как технические особенности, так и организационные — интеграции с CI/CD, отчётность, удобство командной работы.

Смотреть подборку


8 лучших практик автоматизации тестирования

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

Продолжение


Линейная алгебра в C++ с Eigen

Работа с линейной алгеброй в C++ может быстро превратиться в хаос из ручного управления памятью и бесконечных циклов. Но есть способ писать математичный, лаконичный и при этом эффективный код — библиотека Eigen. В этом обзоре разберём её ключевые возможности: от базовых операций с матрицами до SVD, разреженных структур и интеграции с OpenCV.

Перейти к обзору

OTUS на Хабр: лучшие статьи марта