# Передача данных по лазерному лучу (BPSK)
BotHabr (tgi,2) → All – 21:35:02 2026-05-06
Опубликовано: Wed, 06 May 2026 20:48:12 GMT
Канал: Все статьи подряд / Программирование микроконтроллеров / Хабр
В этом тексте я попробовал осуществить передачу данных по лазерному лучу буквально на основе подручных материалов.В тексте представлены основные идеи и решения для передачи и приёма битового потока c помощью BPSK модуляции. Читать далее]]>
https://habr.com/ru/articles/1023062/
BotHabr (tgi,2) → All – 21:35:02 2026-05-06
Опубликовано: Wed, 06 May 2026 20:48:12 GMT
Канал: Все статьи подряд / Программирование микроконтроллеров / Хабр
В этом тексте я попробовал осуществить передачу данных по лазерному лучу буквально на основе подручных материалов.В тексте представлены основные идеи и решения для передачи и приёма битового потока c помощью BPSK модуляции. Читать далее]]>
https://habr.com/ru/articles/1023062/
# Как Rust обманывает процессор. Часть 2: niche сквозь крейты, dropck, Pin и провенанс указателей
BotHabr (tgi,2) → All – 15:35:07 2026-05-06
Опубликовано: Wed, 06 May 2026 14:51:03 GMT
Канал: Все статьи подряд / Системное программирование / Хабр
Как Rust обманывает процессор. Часть 2: niche сквозь крейты, dropck, Pin и провенанс указателейВ первой части мы обсуждали niche-оптимизацию, drop flags, MIR, Stacked Borrows и async-стейт-машины. В комментариях справедливо заметили (спасибо, Mingun): про niche рассказано в простой форме - Option<&T> и NonZeroU8.А что происходит, когда enum живёт в одном крейте, оборачивается в newtype в другом, и оба варианта внешнего enum хранят один и тот же внутренний? У такого внешнего типа всего четыре состояния, байта должно хватить. Хватит ли? Зависит от того, как rustc считает layout. Об этом и поговорим.Во второй части идём глубже: niche сквозь границы крейтов, variance, Pin и самоссылающиеся футуры, dropck с #[may_dangle], Tree Borrows вместо Stacked Borrows и strict provenance. Без этого половина unsafe-кода в экосистеме держится на честном слове. Читать далее]]>
https://habr.com/ru/articles/1032214/
BotHabr (tgi,2) → All – 15:35:07 2026-05-06
Опубликовано: Wed, 06 May 2026 14:51:03 GMT
Канал: Все статьи подряд / Системное программирование / Хабр
Как Rust обманывает процессор. Часть 2: niche сквозь крейты, dropck, Pin и провенанс указателейВ первой части мы обсуждали niche-оптимизацию, drop flags, MIR, Stacked Borrows и async-стейт-машины. В комментариях справедливо заметили (спасибо, Mingun): про niche рассказано в простой форме - Option<&T> и NonZeroU8.А что происходит, когда enum живёт в одном крейте, оборачивается в newtype в другом, и оба варианта внешнего enum хранят один и тот же внутренний? У такого внешнего типа всего четыре состояния, байта должно хватить. Хватит ли? Зависит от того, как rustc считает layout. Об этом и поговорим.Во второй части идём глубже: niche сквозь границы крейтов, variance, Pin и самоссылающиеся футуры, dropck с #[may_dangle], Tree Borrows вместо Stacked Borrows и strict provenance. Без этого половина unsafe-кода в экосистеме держится на честном слове. Читать далее]]>
https://habr.com/ru/articles/1032214/
# [Перевод] Радар для слежения за БПЛА. Часть 1
BotHabr (tgi,2) → All – 15:35:02 2026-05-06
Опубликовано: Wed, 06 May 2026 15:00:15 GMT
Канал: Все статьи подряд / DIY или Сделай сам / Хабр
Несколько лет назад на известном видеохостинге была опубликована серия видео, в которых описывался способ создания радара, позволяющего следить за маленьким пластиковым коптером. Читать далее]]>
https://habr.com/ru/articles/1014742/
BotHabr (tgi,2) → All – 15:35:02 2026-05-06
Опубликовано: Wed, 06 May 2026 15:00:15 GMT
Канал: Все статьи подряд / DIY или Сделай сам / Хабр
Несколько лет назад на известном видеохостинге была опубликована серия видео, в которых описывался способ создания радара, позволяющего следить за маленьким пластиковым коптером. Читать далее]]>
https://habr.com/ru/articles/1014742/
# [Перевод] Радар для слежения за БПЛА. Часть 2
BotHabr (tgi,2) → All – 15:35:02 2026-05-06
Опубликовано: Wed, 06 May 2026 15:30:19 GMT
Канал: Все статьи подряд / DIY или Сделай сам / Хабр
Серия о том, как создать радар для отслеживания дронов продолжается. Мы уже рассмотрели модулированные по частоте сигналы и увидели, как можно определить расстояние. Но на графиках было много помех. И из-за них сложно было выделить реальные цели. Поэтому нужно понять, что считать помехами, а что реальными целями. Читать далее]]>
https://habr.com/ru/articles/1020442/
BotHabr (tgi,2) → All – 15:35:02 2026-05-06
Опубликовано: Wed, 06 May 2026 15:30:19 GMT
Канал: Все статьи подряд / DIY или Сделай сам / Хабр
Серия о том, как создать радар для отслеживания дронов продолжается. Мы уже рассмотрели модулированные по частоте сигналы и увидели, как можно определить расстояние. Но на графиках было много помех. И из-за них сложно было выделить реальные цели. Поэтому нужно понять, что считать помехами, а что реальными целями. Читать далее]]>
https://habr.com/ru/articles/1020442/
# Как на самом деле устроен кэш в controller-runtime, и почему ваш оператор не кладёт apiserver
BotHabr (tgi,2) → All – 14:35:02 2026-05-06
Опубликовано: Wed, 06 May 2026 14:31:09 GMT
Канал: Все статьи подряд / Программирование микроконтроллеров / Хабр
Kubernetes давно стал повсеместной платформой, а написать к нему собственный оператор сегодня — задача нескольких часов. Стандартный путь — kubebuilder на основе controller-runtime: scaffold проекта, типы, реконсайлер. В типовых сценариях этого вполне достаточно. Но как только нагрузка растёт или поведение оператора начинает расходиться с ожиданиями, всплывает целый класс edge-кейсов, причина которых — непонимание того, как controller-runtime устроен внутри. Если вы пишете контроллеры для Kubernetes, этот материал поможет собрать целостную mental model и заранее избежать дорогих сюрпризов в проде.В этой статье разберём внутреннее устройство controller-runtime и на его примере увидим, какие архитектурные решения лежат в основе самого Kubernetes. Начнём с того, как контроллеры читают объекты из Kubernetes API.Есть распространённое заблуждение, что r.Get() в Reconcile ходит прямо в kube-apiserver, List() каждый раз смотрит «живую» картину мира, а после Update() можно сразу перечитать объект и увидеть свежее состояние. На практике всё наоборот: controller-runtime живёт на локальной копии данных через LIST+WATCH. Благодаря этому чтение в реконсайле обходится почти бесплатно и не нагружает control plane даже при сотнях вызовов в секунду — но ценой этой модели становится то, что оператор может внезапно съедать гигабайты памяти, делать скрытые O(n)-сканы и регулярно упираться в stale reads.Статья рассчитана на тех, кто уже писал операторы на Go с использованием controller-runtime, но хочет собрать целостную mental model, а не жить с набором частных наблюдений. Фокус будет на практических последствиях для production-кластеров: память, трафик, консистентность чтения и поведение реконсайла. Читать далее]]>
https://habr.com/ru/companies/aenix/articles/1031818/
BotHabr (tgi,2) → All – 14:35:02 2026-05-06
Опубликовано: Wed, 06 May 2026 14:31:09 GMT
Канал: Все статьи подряд / Программирование микроконтроллеров / Хабр
Kubernetes давно стал повсеместной платформой, а написать к нему собственный оператор сегодня — задача нескольких часов. Стандартный путь — kubebuilder на основе controller-runtime: scaffold проекта, типы, реконсайлер. В типовых сценариях этого вполне достаточно. Но как только нагрузка растёт или поведение оператора начинает расходиться с ожиданиями, всплывает целый класс edge-кейсов, причина которых — непонимание того, как controller-runtime устроен внутри. Если вы пишете контроллеры для Kubernetes, этот материал поможет собрать целостную mental model и заранее избежать дорогих сюрпризов в проде.В этой статье разберём внутреннее устройство controller-runtime и на его примере увидим, какие архитектурные решения лежат в основе самого Kubernetes. Начнём с того, как контроллеры читают объекты из Kubernetes API.Есть распространённое заблуждение, что r.Get() в Reconcile ходит прямо в kube-apiserver, List() каждый раз смотрит «живую» картину мира, а после Update() можно сразу перечитать объект и увидеть свежее состояние. На практике всё наоборот: controller-runtime живёт на локальной копии данных через LIST+WATCH. Благодаря этому чтение в реконсайле обходится почти бесплатно и не нагружает control plane даже при сотнях вызовов в секунду — но ценой этой модели становится то, что оператор может внезапно съедать гигабайты памяти, делать скрытые O(n)-сканы и регулярно упираться в stale reads.Статья рассчитана на тех, кто уже писал операторы на Go с использованием controller-runtime, но хочет собрать целостную mental model, а не жить с набором частных наблюдений. Фокус будет на практических последствиях для production-кластеров: память, трафик, консистентность чтения и поведение реконсайла. Читать далее]]>
https://habr.com/ru/companies/aenix/articles/1031818/
# [Перевод] 44 CVE в uutils: что Rust ловит, а что нет на границе с системой
BotHabr (tgi,2) → All – 05:35:04 2026-05-06
Опубликовано: Wed, 06 May 2026 05:08:37 GMT
Канал: Все статьи подряд / Системное программирование / Хабр
В апреле 2026 года Canonical раскрыла 44 CVE в uutils. Это переписанная на Rust версия GNU coreutils, которая в Ubuntu идёт по умолчанию с 25.10. Раскрытие пришло из внешнего аудита, заказанного перед релизом 26.04 LTS. Большую часть уязвимостей нашли обычным ревью кода. Ни borrow checker, ни проверки clippy, ни cargo audit не поймали ни одной.Этот аудит, пожалуй, самый чёткий из существующих примеров того, что Rust ловит, а что нет. Самый внятный разбор списка сделал Маттиас Эндлер в посте «Bugs Rust Won’t Catch» от 29 апреля. Эндлер ведёт консалтинг corrode и подкаст Rust in Production; недавно у него в гостях был Джон Сигер, вице-президент по инженерии в Canonical. Пост построен как разбор того самого раскрытия: 44 CVE распределены по восьми категориям; к большинству приложен git diff фикса.Ниже разберу каркас Эндлера и добавлю два аргумента сверху. Первый: один из мейнтейнеров GNU coreutils в HN-треде показал бенчмарк, на котором рекомендованный Эндлером фикс не выживает. Второй: структурный аргумент про то, что 40 лет наслоённых POSIX-шрамов делают с любой переписью, независимо от языка. Читать далее]]>
https://habr.com/ru/articles/1031420/
BotHabr (tgi,2) → All – 05:35:04 2026-05-06
Опубликовано: Wed, 06 May 2026 05:08:37 GMT
Канал: Все статьи подряд / Системное программирование / Хабр
В апреле 2026 года Canonical раскрыла 44 CVE в uutils. Это переписанная на Rust версия GNU coreutils, которая в Ubuntu идёт по умолчанию с 25.10. Раскрытие пришло из внешнего аудита, заказанного перед релизом 26.04 LTS. Большую часть уязвимостей нашли обычным ревью кода. Ни borrow checker, ни проверки clippy, ни cargo audit не поймали ни одной.Этот аудит, пожалуй, самый чёткий из существующих примеров того, что Rust ловит, а что нет. Самый внятный разбор списка сделал Маттиас Эндлер в посте «Bugs Rust Won’t Catch» от 29 апреля. Эндлер ведёт консалтинг corrode и подкаст Rust in Production; недавно у него в гостях был Джон Сигер, вице-президент по инженерии в Canonical. Пост построен как разбор того самого раскрытия: 44 CVE распределены по восьми категориям; к большинству приложен git diff фикса.Ниже разберу каркас Эндлера и добавлю два аргумента сверху. Первый: один из мейнтейнеров GNU coreutils в HN-треде показал бенчмарк, на котором рекомендованный Эндлером фикс не выживает. Второй: структурный аргумент про то, что 40 лет наслоённых POSIX-шрамов делают с любой переписью, независимо от языка. Читать далее]]>
https://habr.com/ru/articles/1031420/
# Универсальный Task для C++20 coroutines: тип результата, политика запуска и владение coroutine state
BotHabr (tgi,2) → All – 11:35:04 2026-05-05
Опубликовано: Tue, 05 May 2026 11:16:11 GMT
Канал: Все статьи подряд / Системное программирование / Хабр
Разбор минимального пользовательского Task для C++20 coroutines: выбор promise_type для void и value-результата, политики initial_suspend(), хранение coroutine_handle, final_suspend(), сохранение результата и исключения, а также границы текущей реализации. Читать дале]]>
https://habr.com/ru/articles/1031644/
BotHabr (tgi,2) → All – 11:35:04 2026-05-05
Опубликовано: Tue, 05 May 2026 11:16:11 GMT
Канал: Все статьи подряд / Системное программирование / Хабр
Разбор минимального пользовательского Task для C++20 coroutines: выбор promise_type для void и value-результата, политики initial_suspend(), хранение coroutine_handle, final_suspend(), сохранение результата и исключения, а также границы текущей реализации. Читать дале]]>
https://habr.com/ru/articles/1031644/
# Вентиляция в съемной квартире
BotHabr (tgi,2) → All – 08:35:02 2026-05-05
Опубликовано: Tue, 05 May 2026 08:00:37 GMT
Канал: Все статьи подряд / DIY или Сделай сам / Хабр
Рассказываю, как сделал вентиляцию в съемной квартире "по всем правилам" за 35 000 руб. С HEPA-фильтром, автоматикой и интеграцией в умный дом. Без строительных работ, легко демонтируемую и переносимую. С выводами по опыту эксплуатации. И даже с результатами экспериментов. Читать далее]]>
https://habr.com/ru/companies/wirenboard/articles/1029732/
BotHabr (tgi,2) → All – 08:35:02 2026-05-05
Опубликовано: Tue, 05 May 2026 08:00:37 GMT
Канал: Все статьи подряд / DIY или Сделай сам / Хабр
Рассказываю, как сделал вентиляцию в съемной квартире "по всем правилам" за 35 000 руб. С HEPA-фильтром, автоматикой и интеграцией в умный дом. Без строительных работ, легко демонтируемую и переносимую. С выводами по опыту эксплуатации. И даже с результатами экспериментов. Читать далее]]>
https://habr.com/ru/companies/wirenboard/articles/1029732/
# Может ли ИИ напечатать годную модель на 3D-принтере?
BotHabr (tgi,2) → All – 08:35:02 2026-05-05
Опубликовано: Tue, 05 May 2026 08:03:32 GMT
Канал: Все статьи подряд / DIY или Сделай сам / Хабр
Мне надоели статьи о том, что все в мире можно поручить ИИ. И безумная идея, что все в мире можно напечатать на 3D-принтере, тоже надоела. Что ж, почему бы не объединить ИИ, 3D-печать и недовольство в одной статье, чтобы уж наверняка? Поехали! Заставим ИИ давать указания принтеру, а потом оценим результат.Важный дисклеймер. Эта статья ни в коем случае не носит информационный или просветительский характер. Все, что написано ниже — исключительно мой личный опыт. Я просто женщина с доступом в интернет и 3D-принтером, которая решила разворошить очередное осиное гнездо с ИИ-шной маткой внутри. Если у вас сервисы работали иначе — супер. К сожалению, сейчас бывают перебои и некоторые сайты лежат или ведут себя непредсказуемо. Вполне может быть, что мне просто не повезло, но все сложности при работе определенно повлияют на итоговое мнение, и вы с этим ничего не сможете сделать. Включить подогрев]]>
https://habr.com/ru/companies/selectel/articles/1031320/
BotHabr (tgi,2) → All – 08:35:02 2026-05-05
Опубликовано: Tue, 05 May 2026 08:03:32 GMT
Канал: Все статьи подряд / DIY или Сделай сам / Хабр
Мне надоели статьи о том, что все в мире можно поручить ИИ. И безумная идея, что все в мире можно напечатать на 3D-принтере, тоже надоела. Что ж, почему бы не объединить ИИ, 3D-печать и недовольство в одной статье, чтобы уж наверняка? Поехали! Заставим ИИ давать указания принтеру, а потом оценим результат.Важный дисклеймер. Эта статья ни в коем случае не носит информационный или просветительский характер. Все, что написано ниже — исключительно мой личный опыт. Я просто женщина с доступом в интернет и 3D-принтером, которая решила разворошить очередное осиное гнездо с ИИ-шной маткой внутри. Если у вас сервисы работали иначе — супер. К сожалению, сейчас бывают перебои и некоторые сайты лежат или ведут себя непредсказуемо. Вполне может быть, что мне просто не повезло, но все сложности при работе определенно повлияют на итоговое мнение, и вы с этим ничего не сможете сделать. Включить подогрев]]>
https://habr.com/ru/companies/selectel/articles/1031320/
# Немного об «имитаторах» вечного движения…
BotHabr (tgi,2) → All – 07:35:03 2026-05-05
Опубликовано: Tue, 05 May 2026 07:05:22 GMT
Канал: Все статьи подряд / DIY или Сделай сам / Хабр
RobinLeicesterВечное движение... Наверное, великая и несбыточная мечта многих поколений инженеров, живших в течение многих и многих столетий, когда с момента появления первых механизмов, человек задумался о том, что было бы хорошо, если эти механизмы функционировали не ограниченно долго, не требуя внешних ресурсов! Со временем, по мере развития науки, стало понятно, что «вечный двигатель», как таковой, невозможен, несмотря на многочисленные попытки его построить. Что, впрочем, не исключает возможности «вечного» в целом ряде систем — атомы, при температуре абсолютного нуля, продолжают некоторые колебания, элементарные частицы продолжают движение по своим энергетическим уровням, налоги, два выходных в неделю :-B и т.д.Попробуем разобраться во всех этих вопросах, и понять, есть ли здесь какие-то полезные возможности? Читать далее]]>
https://habr.com/ru/companies/beget/articles/1030688/
BotHabr (tgi,2) → All – 07:35:03 2026-05-05
Опубликовано: Tue, 05 May 2026 07:05:22 GMT
Канал: Все статьи подряд / DIY или Сделай сам / Хабр
RobinLeicesterВечное движение... Наверное, великая и несбыточная мечта многих поколений инженеров, живших в течение многих и многих столетий, когда с момента появления первых механизмов, человек задумался о том, что было бы хорошо, если эти механизмы функционировали не ограниченно долго, не требуя внешних ресурсов! Со временем, по мере развития науки, стало понятно, что «вечный двигатель», как таковой, невозможен, несмотря на многочисленные попытки его построить. Что, впрочем, не исключает возможности «вечного» в целом ряде систем — атомы, при температуре абсолютного нуля, продолжают некоторые колебания, элементарные частицы продолжают движение по своим энергетическим уровням, налоги, два выходных в неделю :-B и т.д.Попробуем разобраться во всех этих вопросах, и понять, есть ли здесь какие-то полезные возможности? Читать далее]]>
https://habr.com/ru/companies/beget/articles/1030688/
# Создаем клиентскую библиотеку ROS2. «Hello ROS»
BotHabr (tgi,2) → All – 14:35:10 2026-05-04
Опубликовано: Mon, 04 May 2026 14:15:30 GMT
Канал: Все статьи подряд / Робототехника / Хабр
Пару лет назад у меня возникла мысль, почему бы не написать полноценную клиентскую библиотеку ROS2 для языка Lua?.. Увы, результат оказался невостребованным, зато сама разработка позволила лучше понять, как устроен этот фреймворк, а также с интересом провести время, разгадывая логические головоломки.Создатели ROS2 вынесли базовый функционал в C библиотеку rcl (ROS Client Libraries). В теории, достаточно создать обертку на каком-либо языке программирования и можно пользоваться. Между тем, сторонних клиентских библиотек не так уж много. На мой взгляд, можно выделить следующие причины: Читать далее]]>
https://habr.com/ru/articles/1031312/
BotHabr (tgi,2) → All – 14:35:10 2026-05-04
Опубликовано: Mon, 04 May 2026 14:15:30 GMT
Канал: Все статьи подряд / Робототехника / Хабр
Пару лет назад у меня возникла мысль, почему бы не написать полноценную клиентскую библиотеку ROS2 для языка Lua?.. Увы, результат оказался невостребованным, зато сама разработка позволила лучше понять, как устроен этот фреймворк, а также с интересом провести время, разгадывая логические головоломки.Создатели ROS2 вынесли базовый функционал в C библиотеку rcl (ROS Client Libraries). В теории, достаточно создать обертку на каком-либо языке программирования и можно пользоваться. Между тем, сторонних клиентских библиотек не так уж много. На мой взгляд, можно выделить следующие причины: Читать далее]]>
https://habr.com/ru/articles/1031312/
# [Перевод] Я сконструировал собственный аппарат для электроэпиляции
BotHabr (tgi,2) → All – 13:35:02 2026-05-04
Опубликовано: Mon, 04 May 2026 13:07:20 GMT
Канал: Все статьи подряд / DIY или Сделай сам / Хабр
Автор рассказывает, как самостоятельно создал аппарат для электроэпиляции, с какими сложностями столкнулся и как решал проблемы разработки. Читать далее]]>
https://habr.com/ru/articles/1031232/
BotHabr (tgi,2) → All – 13:35:02 2026-05-04
Опубликовано: Mon, 04 May 2026 13:07:20 GMT
Канал: Все статьи подряд / DIY или Сделай сам / Хабр
Автор рассказывает, как самостоятельно создал аппарат для электроэпиляции, с какими сложностями столкнулся и как решал проблемы разработки. Читать далее]]>
https://habr.com/ru/articles/1031232/
# Remoded: разбираем демо-эффекты (часть 1)
BotHabr (tgi,2) → All – 07:35:04 2026-05-04
Опубликовано: Mon, 04 May 2026 06:51:52 GMT
Канал: Все статьи подряд / Assembler / Хабр
Приветствую всех ценителей больших пикселей и выпуклых мониторов. Мы продолжаем разбираться с технологиями демосцены 90-х. В этой статье: недокументированные режимы VGA, аппаратный скролл, fake mode, удивительный алгоритм закраски, и многое другое, о чем бесполезно спрашивать у ChatGPT. BEGIN]]>
https://habr.com/ru/articles/1028782/
BotHabr (tgi,2) → All – 07:35:04 2026-05-04
Опубликовано: Mon, 04 May 2026 06:51:52 GMT
Канал: Все статьи подряд / Assembler / Хабр
Приветствую всех ценителей больших пикселей и выпуклых мониторов. Мы продолжаем разбираться с технологиями демосцены 90-х. В этой статье: недокументированные режимы VGA, аппаратный скролл, fake mode, удивительный алгоритм закраски, и многое другое, о чем бесполезно спрашивать у ChatGPT. BEGIN]]>
https://habr.com/ru/articles/1028782/