Рецензии на прочитанные книги: 33-й десяток
Пришло время для рецензий на очередные десять прочитанных мною книг. Книги на этот раз я читал в основном по теме СВЧ и программирования на Rust. Предыдущие рецензии доступны здесь: 32-й десяток, 31-й десяток, 30-й десяток, и далее по ссылкам.
The ARRL UHF/Microwave Projects Manual
ARRL Inc.
Книга 1994-го года о работе на частотах 430 МГц и выше. По большей части является сборником статей из журналов QST, QEX и прочих.
Приводятся схемы маяков, трансвертеров, источников питания, а также инструкции по изготовлению антенн и фильтров. Самодельным смесителям, как по мне, стоило уделить больше внимания. Предполагается, что читатель уже знаком с устройством «стандартного 3/2 λ смесителя».
Больше всего понравилась глава о модуляции лазеров и построении лазерного трансивера.
Реверс-инжиниринг встраиваемых систем
Алексей Усанов
Книга 2023-го года на 290 страниц. Написана руководителем направления исследований безопасности аппаратных решений в Positive Technologies.
Автор рассказывает, как вскрыть исследуемое устройство и опознать основные компоненты, как работают I2C, SPI и UART, а также как пользоваться OpenOCD и логическим анализатором. Очень подробно описаны протоколы JTAG и SWD. Объясняются принципы работы glitch-атак, атак электромагнитным импульсом (EMFI), атак оптическим импульсом (LFI), side-channel атак при помощи графиков энергопотребления и пробников ближнего поля, а также такие инвазивные атаки, как восстановление ROM по фотографии декапсулированной микросхемы. Приводятся практические советы по дизассемблированию прошивок.
Замечательная книга для исследователей встраиваемых систем, как начинающих, так и не очень. Радуют качественный переплет и цветные иллюстрации. Наиболее важные ссылки продублированы в виде QR-кодов.
Символы, сигналы, шумы. Закономерности и процессы передачи информации
Джон Пирс
Книга о теории информации, написанная простым и понятным языком. Опубликована в 1962 году. Переведена на русский язык в 1967 году.
Из «Символов, сигналов, шумов» вы узнаете, чем энтропия в физике отличается от энтропии в теории связи. Рассказывается об истории развития телеграфа. Например, почему подземные и подводные телеграфные линии оказались нерабочими, и в итоге провода стали подвешивать на столбах. Описывается алгоритм сжатия Хаффмана. Разбирается природа теплового шума. Исследуются возможности применения теории информации в лингвистике, психологии и искусстве.
Книгу по достоинству оценят любители научно-популярной литературы.
Programming Rust, 2nd Edition
Jim Blandy, Jason Orendorff, Leonora Tindall
Учебник по языку программирования Rust. Второе издание датировано 2021-м годом и как будто бы не сильно устарело. В данный момент готовиться к выходу 3-е издание.
Помимо прочего, разбирается написание многопоточного кода и асинхронного кода на футурах (futures). Объясняется, как писать макросы, unsafe код, взаимодействовать с кодом на C. Что не рассматривается: выбор текстового редактора или IDE, использование отладчика, профилировщика, определение степени покрытия кода тестами и т.п.
Книга очень хороша, на твердую пятерку. Только написана не для начинающих. Читателю стоит иметь пару лет опыта программирования на высокоуровневых языках, таких как Python, Go или Java. Не лишним будет знание C, Pascal или C++. Иначе проблемы, решаемые Rust, могут быть не особо ясны. Знакомство с Haskell, Erlang или Scala строго говоря не обязательно, но упростит понимание материала.
The ARRL UHF/Microwave Projects Manual, Volume 2
ARRL Inc.
Выяснилось, что у «The ARRL UHF/Microwave Projects Manual» есть второй том. Опубликован тремя годами позднее, в 1997-м.
Здесь рассказывается о параболических, рупорных и линзовых антеннах, а также антеннах QFH. Приводятся схемы нескольких СВЧ трансвертеров. Также приводится множество других схем. Например, схема секвенсора (он же sequencer или блок последовательного управления) на основе заряжаемого / разряжаемого конденсатора и нескольких компараторов.
Особенно понравились графики из главы про параболические антенны. Из графиков мы узнаем, что при типичном F/D = 0.5 оптимальный уровень облучения краев зеркала составляет -10 dB относительно центра. Обладая этой информацией, можно подобрать подходящий облучатель. Для облучателя в виде спиральной антенны рекомендуется пять витков. Также мы узнаем, что при заданном F/D смещение облучателя относительно фокуса даже на ±1 λ приводит к потерям не более 3 dB.
The ARRL UHF/Microwave Experimenter's Manual
ARRL Inc.
Книга 1990-го года, также по теме СВЧ. На нее было несколько отсылок из предыдущей.
Рассказывается об истории любительской радиосвязи и распроспространении радиоволн на СВЧ; о том, как работают диод Ганна, ЖИГ-резонатор (YIG oscillator) и волноводы; как изготовить усилители, генераторы, фильтры и тот самый 3/2 λ смеситель, он же rat-race mixer; что такое коэффициент шума и интермодуляционные искажения; как соединить несколько MMIC параллельно. Есть отдельные главы об антеннах и EME.
Ликбез что надо, одобряю.
Creative Projects for Rust Programmers
Carlo Milanesi
Легкое чтиво с примерами проектов на языке Rust.
Рассматриваются парсинг JSON, TOML и XML; работа с PostgreSQL, SQLite и Redis; использование веб-фреймворка Actix и HTML-шаблонизатора Tera; разработка приложений на WebAssembly при помощи Yew и Quicksilver; создание 2D-игр при помощи ggez, а также написание модулей ядра Linux.
Книга опубликована в 2020-м году и за прошедшее время как будто бы не сильно устарела. Все рассмотренные примеры доступны на GitHub.
Rust Atomics and Locks: Low-Level Concurrency in Practice
Mara Bos
Книга 2023-го года. Переведена на русский язык под названием «Rust: атомарности и блокировки». В переводе книга у меня не пошла. Я не мог избавиться от ощущения, что читаю автоматический перевод через Google Translate. Было принято решение читать в оригинале.
Объясняется многопоточность в Rust. Очень подробно и с множеством примеров разбирается memory ordering. Приводится собственная реализация спинлоков, каналов, Arc, Condvar, Mutex и RWLock. Особенно впечатлила глава, где показано, в какие конкретно ассемблерные инструкции x64 и arm64 транслируются атомарные операции.
Гениальная книга. Горячо рекомендую к прочтению.
Effective Rust: 35 Specific Ways to Improve Your Rust Code
David Drysdale
Книга 2024-го года о том, как правильно программировать на Rust. Переведена на русский язык под названием «Эффективный Rust». О качестве перевода судить не могу. После неудачного опыта с «Rust Atomics and Locks» ставка сразу была сделана на оригинальный текст.
Задумка состоит в том, чтобы повторить «Effective C++» Скотта Мейерса и «Effective Java» Джошуа Блоха, только для Rust. Субъективно, вышел по большей части пересказ учебника по языку с разбором трейтов, работы borrow checker и т.п. Прочие рекомендации заключаются, например, в том, чтобы по возможности не писать unsafe код, избегать паник, а также настроить CI. То есть, написано как будто бы все правильно, вот только новой информации крайне мало.
Думается, книга может быть полезна тем, кто много лет писал на условном C++ или Ruby, и потому понимание идиом языка Rust вызывает затруднения.
Microwave Know How for the Radio Amateur
Andy Barter, G8ATD
Книга об СВЧ. Здесь можно найти информацию об антеннах Вивальди и short backfire antenna (SBFA). Приводятся схемы генераторов шума. Описано несколько самодельных усилителей мощности. Приводятся инструкции по модификации списанного СВЧ оборудования для радиолюбительских нужд.
Особенно понравились детальная инструкция по изготовлению полосового фильтра на объемных резонаторах (cavity filter). Также запомнился квадратурный гибридный ответвитель на 2.4 ГГц, способный держать 400+ Вт на суммирующем порту. Он может быть использован для объединения двух усилителей мощности на 200 Вт, что является актуальной задачей среди энтузиастов EME. Для повторения первого проекта требуются сверлильный и токарный станки, а для второго – лазерный.
Помимо названных книг также я полистал Network Programming with Rust, автор Abhishek Chanda. Книга опубликована в 2018-м году, когда в Rust еще не было синтаксиса async / await. Как результат, все что в ней написано про Tokio успело устареть. Допускаю, что остальные главы все еще актуальны, однако я лично решил обойти данную книгу стороной.