Данная статья является переводом статьи Теда Япо от 23.01.20 на техническом портале «HACKADAY». Она посвящена книге Пола Хоровица и Уинфилда Хилла: «Искусство схемотехники: сборник X-глав». Из нее потенциальный читатель может почерпнуть интересующие его сведения о книге.
Инженер-программист
ByeDPI для Android, SpoofDPI для Mac и Linux – чиним YouTube и не работающие в России сайты на Андроид, Линукс и Мак
Вчера писал о графической оболочке Launcher for GoodbyeDPI, позволяющей интуитивно-понятно воспользоваться решением GoodbyeDPI от ValdikSS для решения проблемы замедления YouTube и недоступности в России ряда сайтов. Все хорошо, но это были решения лишь под Windows. В комментариях основные вопросы были о том, как быть с Android, Linux и Mac, и почему не в исходниках. Увы, репрессии РКН заставляют администрацию Хабра цензурировать статьи, во вчерашнюю статью внесение изменений мне запрещено, и сама ссылка доступна лишь вне России, потому объясняю про Андроид, Линукс и Мак здесь, со ссылками на исходники.
Итак, для Android есть масса проектов, мне подошел Release ByeDPI 1.0.0 · dovecoteescapee/ByeDPIAndroid · GitHub. Для Mac и Linux я бы ставил https://github.com/xvzc/SpoofDPI/releases. Все в исходных кодах.
ByeDPI for Android, это приложение, которое запускает локальный VPN-сервис для обхода DPI (Deep Packet Inspection) и цензуры. На вашем устройстве локально запускается SOCKS5-прокси ByeDPI и весь трафик перенаправляется через него.
Вычисляем миллиардное число Фибоначчи менее чем за 7 секунд
Мы будем считать 1000,000,000 число Фибоначчи со всеми цифрами. Для этого я буду использовать продвинутый алгоритм для поиска чисел Фибоначчи. Тут не будет базовых алгоритмов на подобии матричного возведения в степень и проще. Но эта статья будет понятна и школьнику :-)
Собираем полноценный NAS с 4 NVME дисками размером с небольшую книгу
Увидев видео про эту плату, я подумал, что она по сути может быть полноценной медиа приставкой, файлопомойкой и торрентокачалкой одновременно и при этом занимать место размером с маленькую книгу формата А5 и кушать 5 ватт в простое, работая 24/7. Вкусно!
На самом деле несмотря на маркетинг, нормальная комплектация стоит порядка 175 долларов (а не 100, плюс доставка и растаможка) и диски, естественно не входят в эту цену. Речь идёт про плату CM3588 на базе системы на чипе RK3588. Маркетинговая страничка, спецификация, вики. Комплектов на алике очень много вариантов (с корпусами и всякими доп. железками) - выбирайте очень аккуратно.
Изначально мне казалось будет приключение на 20 минут, но в итоге пришлось чуть повозиться и не всё получилось. В этой статье я расскажу, что именно получилось сделать с этой платой, а что не получилось и какие-то минимальные результаты тестирования прошивок от производителя, дисков и копирования файлов по сети.
C++20 в bare-metal программировании, работа с регистрами микроконтроллеров Cortex-M
Сегодня я хотел бы обсудить тему, с которой так или иначе сталкивался почти каждый программист встраиваемых устройств без использования настоящих операционных систем, а именно прямое управление периферийными узлами микроконтроллера. A конкретнее, я хотел бы обсудить повышение безопасности при управлении периферийными модулями без потери эффективности, гибкости и читаемости.
Статья предполагает, что читатель имеет базовые знания программирования bare-metal систем и языка С++, в том числе и современных стандартов. Это означает, что совсем базовые пояснения выходят за рамки этой статьи.
Почему для меня так важен алгоритм CORDIC
CORDIC — это алгоритм для вычисления тригонометрических функций вроде
sin
, cos
, tan
и тому подобных на маломощных устройствах без использования модуля обработки операций с плавающей запятой или затратных таблиц поиска. По факту он сводит эти сложные функции до простых операций сложения и битового сдвига.Перейду сразу к делу и скажу, почему я так сильно люблю этот алгоритм, а затем займёмся изучением принципов его работы. По сути, фактические операции CORDIC весьма просты — как я уже сказал, это сдвиги и сложение — но выполняет он их путём комбинирования векторной арифметики, тригонометрии, доказательств сходимости и продуманных техник компьютерных наук. Лично я считаю, что именно это имеют ввиду, описывая его природу, как «элегантную».
PSNR и SSIM или как работать с изображениями под С
Когда мне на учебе дали задание написать две метрики для оценки различия двух картинок, в частности качества видоизмененной от исходной, меня это конечно все это немного смутило. Знания в программировании были, мягко говоря, не очень большими, как-никак был только на первом курсе. Благо, какую библиотеку выбрать сказали заранее, так что с этим труда не возникло. А вот как ее использовать это было уже на порядок сложнее, все, что я в основном смог нарыть в интернете, было на английском, хоть я его и знаю на уровне, что могу читать тех. литературу, вследствие огромности самой библиотеки, подходило мало. Отлично, что удалось, какие функции и как использовать, я смог потом уточнить у преподавателя. А требовалось только понять как обращаться к самой картинке, в частности к отдельным пикселям изображения. Кого заинтересовало, добро пожаловать под кат.
Кватернионы, матрицы поворота и перепроецирование векторов между системами координат
Заранее оговорюсь, что материал не претендует на академичность изложения, а скорее просто описывает удобный для запоминания способ интерпретации того, что происходит при перепроецировании векторов.
Стало быть, речь у нас пойдет в особенности о проекциях и поворотах.
Опыт использования свободного ПО OSS-CAD-SUITE для программирования FPGA Gowin
Для программирования FPGA нужна среда проектирования. Например, при использовании микросхем ПЛИС Altera/Intel мы используем САПР Intel Quartus Prime Software. Возможно, основная ценность технологии ПЛИС даже не сами микросхемы, а программное обеспечение, которое позволяет разместить Verilog HDL / VHDL проект по логическим блокам и развести связи между ними используя заданные временные ограничения.
Возможно ли использование open source инструментов для FPGA проектирования?
Я расскажу о своем опыте использования Yosys oss-cad-suite для платы Марсоход3GW-2 на базе ПЛИС китайской компании Gowin GW1NR-LV9QN88PC6/I5. Фото платы показано выше в начале статьи.
Ещё одна статья про кватернионы и углы Эйлера
В ходе разбирательства пришлось прочитать несколько статей на Хабре, посвященных кватернионам и углам Эйлера, Википедию и просто методички и статьи разных ВУЗов. Для удобства приведу ссылки на статьи, с Хабра:
Каверзные кватернионы
Заметки о вращении вектора кватернионом
Кватернионы для чайников
Кручу-верчу, запутать хочу. Углы Эйлера и Gimbal lock
Формулы для пересчёта углов Эйлера в кватеринионы и обратно найти можно, но
Доступно о кватернионах и их преимуществах
От переводчика: ровно 175 лет и 3 дня назад были изобретены кватернионы. В честь этой круглой даты я решил подобрать материал, объясняющий эту концепцию понятным языком.
Концепция кватернионов была придумана ирландским математиком сэром Уильямом Роуэном Гамильтоном в понедельник 16 октября 1843 года в Дублине, Ирландия. Гамильтон со своей женой шёл в Ирландскую королевскую академию, и переходя через Королевский канал по мосту Брум Бридж, он сделал потрясающее открытие, которое сразу же нацарапал на камне моста.
Памятная табличка на мосту Брум Бридж через Королевский канал в честь открытия фундаментальной формулы умножения кватернионов.
В этой статье я постараюсь объяснить концепцию кватернионов простым для понимания образом. Я объясню, как можно визуализировать кватернион, а также расскажу о разных операциях, которые можно выполнять с кватернионами. Кроме того, я сравню использование матриц, углов Эйлера и кватернионов, а затем попытаюсь объяснить, когда стоит использовать кватернионы вместо углов Эйлера или матриц, а когда этого делать не нужно.
Последнее издание культовой книги «Искусство схемотехники» стало доступно русскоязычным читателям
“Электронщики, как учит нас Парацельс, самозарождаются среди паяльников, радиодеталей, универсальных плат и проводов” (@teap0t)
Возможно, это действительно так, но без хорошей книги - учебника или справочника, которые служат катализатором, этот процесс может так и не завершиться. А лучшей книгой для начинающих разработчиков электронных схем и практически библией электронщиков последние сорок лет, считается "Искусство схемотехники" (англ. - The Art of Electronics) Пауля Хоровица и Уинфилда Хилла.
Как я устраивалась в Лайк Центр, а оказалась в суде
Рынок труда последние два года сильно изменился. Хотя много кто из компаний и СМИ говорит о кадровом голоде, но по факту найти действительно хорошую работу стало сложнее. Компании используют для своей выгоды нечеткость законов в трудовом праве, правоприменительная практика в судах страдает.
Я бы не поверила в такое, если бы сама на практике не столкнулась с этим. Расскажу об АНО ЦРП, это одна из компаний группы «Лайк Центра» Аяза Шабутдинова, прославившегося тем, что в ноябре 2023 года он попал в СИЗО, а в апреле ему предъявили обвинение по 73 эпизодам мошенничества.
MPEG-DASH в nginx-rtmp-module: живое видео в браузере без флеша
Что такое MPEG-DASH
MPEG-DASH — технология нового поколения, позволяющая вещать адаптивный видео-поток. Данные разбиваются на фрагменты и передаются клиенту по протоколу HTTP. Это позволяет надежно передавать видео через существующую HTTP-инфрастуктуру, преодолевать прокси-сервера, а также безболезненно переносить проблемы с сетью, изменения сетевых адресов итд.
DASH — Dynamic Adaptive Streaming over HTTP. Стандарт DASH ISO/IEC 23009-1:2012 был разработан группой MPEG в 2011 годуТехнология MPEG-DASH в целом аналогична другой известной технологии HLS (HTTP Live Streaming), разработанной компанией Apple и широко используемой на мобильных устройствах с iOS и Android. Поток представлен в виде небольших по длительности фрагментов и плейлиста (манифеста), содержащего метаданные потока и ссылки на фрагменты.
Инстанциирование шаблонов функций по списку типов (Часть 1)
Cтатья будет состоять из двух частей. В первой части будет описана проблема и представлено её первичное, немного кривоватое, решение. Вторая часть будет посвящена усовершенствованию и обобщению изложенного решения.
Первым делом опишем проблему. Представьте себе, Вы обьявляете шаблон функции в заголовочном файле. Если шаблон должен быть потенциально пригоден для всего, что только можно, то и определить его нужно здесь же, в заголовочном файле. Это влечёт за собой сквозные зависимости, увеличение времени компиляции и срач в заголовочном файле. Но это всё же неизбежность. Конечно, можно определить шаблон в другом заголовочном файле и включить его внизу файла с обьявлением. Это избавит Вас от третьей проблемы, но не избавит от первых двух. Теперь обратная ситуация, когда шаблон должен быть использован(инстанциирован) только для парочки конкретных типов. Тогда вы смело переносите определение в исходник и явно инстанциируете Ваш шаблон для каждого отдельного типа. Немного трудоёмко в сопровождении, но всё же лучше чем гадить в заголовочном.
Наша ситуация находится где-то посередине. Есть шаблон функции, и он должен быть инстанциирован для конкретного списка типов, который где-то у Вас в проекте увековечен с помощью typedef'а. Ну, например:
typedef TypeList<int,char,bool,string, EmptyList> MyTypeList.
О том, что такое список типов можно почитать у А.Александреску в «Современное проектирование на С++», а пример реализации — здесь.
Под катом самопальная имплементация(такая же как и у тысяч других, наверное). Она, мне лично, больше нравится, так как позволяет писать
typedef TypeList<int,char,bool,string, EmptyList> MyTypeList;
вместо классической записи
typedef TypeList<int,TypeList<char,TypeList<bool,TypeList<string, EmptyList>>>> MyTypeList;
Смотрим как работает RVO C++ в gcc
В данной небольшой статье я предлагаю рассмотреть как работает принцип RVO (return value optimization) в компиляторе gcc. Автор статьи не претендует на уникальность и какую-то новизну. Ориентировано на начинающих и представляет собой больше некую заметку.
Итак, рассмотрим класс и код, его использующий:
Как создать простой LoRa мессенджер: обмен зашифрованными текстовыми сообщениями между устройствами без интернета
В современном мире IoT, когда связь в отдаленных районах становится все более актуальной, технология LoRa (Long Range) предоставляет нам возможность создать дальнобойный, надежный, энергоэффективный и зашифрованный канал связи без необходимости иметь какую-либо сетевую инфраструктуру.
В этой статье мы рассмотрим, как создать простой LoRa мессенджер с использованием своего протокола обмена и готовых модулей, работающих в режиме P2P (peer-to-peer) – не идеального, но интересного решения для обмена текстовыми сообщениями в условиях ограниченной инфраструктуры.
Для упрощения и автоматизации процесса обмена сообщениями мы воспользуемся Node-RED. Этот инструмент, помимо реализации основной логики обмена сообщениями, также предоставит графический интерфейс для мессенджера, что сделает процесс более доступным и интуитивно понятным.
Выглядеть будет просто, потому что воспользуемся всем готовым :)
Как перестать «ходить на дырку» на даче и не надышаться миазмами
Эта статья адресована тем, кто сам занимается строительством канализации на даче.
Миллионы дач в России ранее были оборудованы туалетами типа "сортир с выгребной ямой". С этого многие начинали и многие этим и закончили. Но по мере продвижения ИИ в массы и вообще развития технологий, многие задумались о том, что душ доме на даче это хорошо. А также нормальный тубзик. В котором можно нормально гнездится и почитать газету в интернете, Хабр или что-то еще полезное, а не напряженно ждать вцепится ли в тебя рой мух или нет. Опять же эстетика сортира уже устарела.
Почему не стоит рассчитывать на государственную пенсию?
Существует множество концепций ранней пенсии, вариантов финансовой независимости и всего того, ради чего люди обычно инвестируют. Но что, если для вас это совсем неактуально? Работа вполне устраивает, выходить на раннюю пенсию никакого желания нет, снижать свой уровень потребления сейчас ради эфемерных возможностей в будущем совсем не хочется. Можно ли в этом случае обойтись без инвестиций и после завершения трудовой деятельности рассчитывать только на поддержку от государства? Позволит ли традиционная социальная пенсия закрыть все ваши потребности? Или же к обычной пенсии по возрасту всё равно придётся готовиться заранее и самостоятельно? Эти вопросы как раз и разберём в данной статье.
Миландр + GCC + VSCode. Пробуем мигать светодиодом на отечественном ARM32 микроконтроллере
Год назад я написал статью об отладке STM32 микроконтроллеров из под VSCode, с компиляцией в GCC и сборкой с помощью CMake. А в декабре мне в руки попали две тестовые единицы отечественных микроконтроллеров К1986ВЕ92FI (MDR1211FI1). Производитель имеет свою библиотеку SPL на C, а также неплохую базу примеров инициализации и применения различной периферии в Keil и IAR; однако я, average C++20+ enjoyer , решил попробовать перенести свой тулчейн на новое железо.
Информация
- В рейтинге
- 6 031-й
- Откуда
- Владивосток, Приморский край, Россия
- Зарегистрирован
- Активность