Как стать автором
Обновить
38
0.1

Пользователь

Отправить сообщение

Выполняем сторонние программы на микроконтроллерах с Гарвардской архитектурой: как загружать программы без знания ABI?

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров15K
image


Зачастую в процессе разработки собственных устройств или моддинга уже существующих, встаёт задача выполнения стороннего кода: будь то ваши собственные программы с SD-флэшек, или программы, написанные другими пользователями с помощью SDK для вашего устройства. Тема компиляторов и кодогенерации достаточно сложная: чтобы просто загрузить ELF или EXE (PE) программу, вам нужно досконально разбираться в особенностях вашей архитектуры: что такое ABI, релокации, GOT, отличие -fPIE от -fPIC, как писать скрипты для ld и т. п. Недавно я копал SDK для первых версий Symbian и основываясь на решениях из этой ОС понял, каким образом можно сделать крайне «дешевую» загрузку любого нативного кода практически на любом микроконтроллере, совершенно не вникая в особенности кодогенерации под неё! Сегодня мы с вами: узнаем, что происходит в процессе загрузки программы ядром Linux, рассмотрим концепцию, предложенную Symbian Foundation и реализуем её на практике для относительно малоизвестной архитектуры — XTensa (хотя она используется в ESP32, детали её реализации «под капотом» для многих остаются загадкой). Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 63: ↑62 и ↓1+61
Комментарии37

Как запустить сотовую сеть стандарта AMPS при помощи SDR

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров9.6K
Приветствую всех!

Многие из нас всё ещё помнят такой стандарт связи как AMPS. В лучшие времена он, как и другой аналоговый стандарт NMT-450, был достаточно популярен на просторах России. И, возможно, у кого-то из нас даже был такой телефон.



Хотя сети общего пользования прекратили работу уже давным-давно, при помощи некоторого оборудования и софта всё ещё возможно дать старым телефонам возможность вновь зазвонить.
Итак, в сегодняшней статье разберёмся, как запустить сотовую сеть стандарта AMPS. Узнаем, с какими сложностями придётся столкнуться и как заставить всё это работать. Традиционно будет много интересного.
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии32

Диффузионные модели в CV. Что за зверь?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров7.2K

Всех приветствую! Статья посвещена диффузионным моделям в компьютерном зрение. Цель статьи сформировать понимания (надеюсь) работы данного типа моделей. Попытаемся разобраться что это такое и как это устроено.

Если объяснять в двух словах, то идея заключается в следующем: берем картинку, постепенно добавляем к ней шум в течении некоторого количества шагов, а после обучаем нейронку восстанавливать из зашумленной картинки исходную.

Если хочется узнать побольше, то welcome!

Продолжение смотреть в источнике....
Всего голосов 8: ↑7 и ↓1+6
Комментарии0

Разбираем TLS по байтам. Кто такой этот HTTPS?

Уровень сложностиСредний
Время на прочтение32 мин
Количество просмотров23K


Подключение к сайту бывает защищённым, а бывает нет — это надо знать всем детям. Только мало детей знают, что это значит и как работает.

Я, изучая веб-разработку, узнал об HTTP. Разобраться в нём несложно: в каждой статье о протоколе множество наглядных примеров запросов и ответов. Затем узнал о схеме HTTPS, с которой всё не так наглядно. В ней используется то ли SSL, то ли TLS, и что-то где-то шифруется, и зачем-то нужны какие-то сертификаты. Короче, всё расплывалось в тумане: где пример ответа, запроса, сертификата, как его создать, зачем он нужен и почему гайд по созданию http-сервера уже написал каждый школьник, а https-сервер — недоступная для начинающих разработчиков роскошь?

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

Во второй обсудим, как это дело реализуется в протоколе TLS и разберём формат TLS-пакетов по байтам. Статьи рассчитаны в первую очередь на изучающих веб-разработку, знакомых с HTTP и жаждущих осознать, кто такое https. Но материал актуален для любых применений TLS, будь то веб или не веб.
Читать дальше →
Всего голосов 62: ↑61 и ↓1+60
Комментарии21

Проектируем узлы печатной платы с учетом особенностей монтажа при массовом производстве. Подход DFA

Время на прочтение18 мин
Количество просмотров13K

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

Подход, на который мы будем опираться, называется DFA — Design for Assembly (проектирование для сборки). Набор методов DFA гарантирует возможность сборки компонентов на плате, когда она поступит на монтажный участок, и позволяет отправлять плату в тираж без страха потерять деньги и время.

Читать далее
Всего голосов 55: ↑55 и ↓0+55
Комментарии32

Как я делал солнечную зарядку для своего моноколеса и вот что получилось

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров14K

Получилось так, что с недавнего времени, я обзавелся личным электротранспортом, который называется моноколесо. Долго я шел к этому, но всё же решился и ни о чем не жалею, даже наоборот, испытываю полный восторг от поездок на этом сногсшибательном транспорте. А еще очень люблю поезки на природу, а езда на моноколесе на природу умножают эту любовь на 100500. Но есть одно «НО» и об этом далее...

Читать далее
Всего голосов 99: ↑99 и ↓0+99
Комментарии80

IoT и его криптонит

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров1.9K

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

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

Многие устройства IoT также являются частью концепции домашней автоматизации и, соответственно, в той или иной мере обладают схожими преимуществами и недостатками. Пожалуй, главной «ахиллесовой пятой» обеих концепций являются вопросы обеспечения безопасности, и если ранее до массового распространения этих технологий на безопасность как большинству пользователей, так и производителей было плевать с высокой колокольни, то сегодня эта проблема носит достаточно острый характер. В 2021 году количество устройств IoT превысило 13,8 миллиарда, и ожидается, что к 2025 году их число как минимум удвоится. Такое количество разнородных подключённых устройств и объём данных, которыми они обмениваются, заставляют нервничать многих специалистов по безопасности. Этот вопрос становится ещё более существенным, когда понимаешь, что более 90% всего трафика между устройствами IoT не зашифровано.

В результате хорошо известные угрозы и атаки, такие как распределённый отказ в обслуживании (DDoS) и «человек посередине» (Man-in-the-Middle, MitM), достаточно легко и непринуждённо применяются для компрометации систем IoT. Хотя DDoS является самой популярной атакой на системы вообще, в сфере IoT MitM может её затмить. Если первая метафорически сравнима с ударом дубиной по голове, то вторая — это укол шпагой. Атаки MitM обычно более сложны, чем другие, и их трудно идентифицировать. Обычно они включают в себя широкий спектр мероприятий, в которых злоумышленник располагается в центре коммуникации, перехватывая контроль над каналами связи.

Дальше-больше..
Всего голосов 5: ↑5 и ↓0+5
Комментарии3

Робототехнические манипуляторы с компьютерным зрением

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров6.8K
Картинка Freepik

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

Работа в этой области позволит освоить микроконтроллеры, компьютерное зрение, изучить различные виды кинематики манипуляторов.

Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии3

Визуальное RPG с долговременной памятью, генерируемое из 3 нейросетей и LLamы

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров11K

Языковые модели (NLP) сейчас активно развиваются и находят себе всё больше интересных применений. Начиналась же их эпоха с классики жанра — D&D. Это настольная игра, где несколько друзей или просто знакомых синхронно галлюцинируют, представляя себя командой героев в некоем вымышленном мире. Прав же во внутриигровых выборах тот, кто выкинул большее число на игральной кости. Судить сейчас об их мотивации у меня нет никакого желания, да и статья вообще-то не об этом.

Важно только понимать, что движущей силой сюжета в их сессиях является лишь один из игроков, называемый Dungeon Master. Когда только начали появляться первые GPT-модели, одной из первых хотелок гиков оказалось желание сварить из нейросетей автоматического Dungeon Masterа.

Так и появился AIDungeon — уникальная для своего времени (2019 год) вещь, которая не сильно потеряла в популярности и по сей день. Однако, если вы любите смотреть глубже, то играть в него вам быстро надоест. Я же в своей серии из нескольких статей (посвящённых GPT) стараюсь показать простому обывателю механизм безболезненного использования нейросетевых моделей в простых проектах при помощи Python и Hugging Face Transformers.
Приступим
Всего голосов 64: ↑64 и ↓0+64
Комментарии11

Сравнение датчиков температуры. Часть 2, цифровые

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров7.2K

Как обмануть родителей и не идти в школу? Есть простой рецепт. Берем градусник, нагреваем его при помощи фена или обогревателя до требуемой температуры 38 °C, имитируем хриплый голос и сопли, демонстрируем все обозначенное взрослым. Но получится ли провернуть такую операцию, если градусник цифровой? К счастью, да, проверено на медицинском термометре WT-03 BASE фирмы B.Well. Проверено теоретически, конечно, я же уже взрослый.

Ртутный градусник имеет интересное свойство запоминать максимальную температуру. В электронном термометре эту функцию заменяет программа. Есть некоторый начальный порог, что-то около 30 °C и если затем положить прибор в холодильник, то он покажет последнее максимальное значение. Нет необходимости удерживать требуемую для обмана температуру продолжительное время. Отлично.

Читать далее
Всего голосов 11: ↑10 и ↓1+9
Комментарии17

Простой комплект для изучения сантиметровых радиоволн (СВЧ)

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров14K

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

Читать далее
Всего голосов 125: ↑124 и ↓1+123
Комментарии21

Обучение нейронной сети обнаружению людей на аэроснимках

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров7.8K

Если вам понадобилось обучить нейронную сеть обнаруживать объекты на изображении или в видеопотоке, то для вас есть хорошие новости - уже существуют простые в использовании готовые инструменты. Наверняка кто-то из читателей такими пользуется. Например модель YOLOv8 хорошо тренируется на новых данных "из коробки". И, наверное, права была посетитель выставки, которая около стенда демонстрирующего обнаружение животных на видео c БПЛА сказала: "Что тут такого. Я за 10 строчек кода такое сделаю".
Но что, если сделал все по инструкции, а оно не работает так как хочется?

Читать далее
Всего голосов 6: ↑3 и ↓30
Комментарии11

Как сделать Stable Diffusion XL ещё умнее, используя отрицательные подсказки

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров8.8K

В прошлом месяце Stability AI выпустила Stable Diffusion XL 1.0 (SDXL) и дала открытый доступ к его исходному коду всем желающим. Как добиться более точных и детальных генераций, скормив сетке плохие примеры?

Читать далее
Всего голосов 15: ↑14 и ↓1+13
Комментарии0

LlamaIndex: создаем чат-бота без боли и страданий. Часть 2

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.1K

Продолжаем изучать фреймворк для создания AI-ботов. В этой части узнаем про тонкости индексирования собственной базы документов.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии9

Волновое сопротивление остроносых судов

Время на прочтение14 мин
Количество просмотров10K

Что может нам рассказать бурун у форштевня о форме подводных потоков, огибающих судно?

Ранее я уже писал статью «Борьба с волновым сопротивлением у водоизмещающих кораблей» про волновое сопротивление кораблей на примере тупоносых плоскодонных речных барж (см. ссылку).

Теперь настало время разобраться с волновым сопротивлением остроносых судов.

Дополнительным мотивом к написанию статьи стал ТВ-репортаж с военно-морского парада в Санкт-Петербурге 30 июля 2023 года.

Там на видео показали динамику бурунов при обтекании носа  подводной лодки, при этом были видны удивительные процессы встречных  течений, которые в статичных изображениях на фотографиях опознать и понять не получается. (см.рис.1-2). Вот ссылка на видео с тайм кодом на проход подводной лодки с буруном.

Читать далее
Всего голосов 49: ↑46 и ↓3+43
Комментарии61

За секунды: полировка металлов электричеством

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров17K

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

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

Дальше мы обзорно поговорим о ней, а желающие смогут задуматься о применении её в своих проектах.
Читать дальше →
Всего голосов 79: ↑79 и ↓0+79
Комментарии32

И имя нам легион…

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров3.4K

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

Массивное распараллеливание и разделение общих задач, обеспечиваемое совместной работой простых механизмов, намного эффективнее и экономичнее использования одного более сложного. По этому поводу со времён товарища Форда ни у кого вопросов не возникает. А если посмотреть соревнования F1, то там это кажется настолько органичным, что будто по-другому и нельзя.

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

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии14

Разработка сервопривода с BLDC мотором

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров13K

Открытый проект серво‑контроллера MC50 продолжает развиваться. На этот раз поговорим о создании сервопривода.

Сервоприводы в умном доме нужны повсеместно: в запорных кранах, в электрических замках, в моторизированных кронштейнах и столах, в автоматических дверях, калитках, окнах, маркизах, воротах, поворотных видеокамерах, регулируемых креслах, электро‑пандусах и проч. Поэтому технология сервоприводов весьма востребована и тут есть где развернуться творчеству.

Читать далее
Всего голосов 64: ↑63 и ↓1+62
Комментарии43

Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров334K

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

Но кое о чем мы не поговорили. Во второй статье я вскользь упомянул самую передовую и недетектируемую технологию обхода блокировок под названием XTLS-Reality, и пришло время рассказать о ней поподробнее, а именно - как настроить клиент и сервер для нее.

Кроме того, что этот протокол еще более устойчив к выявлению, приятным фактом будет и то, что настройка сервера XTLS-Reality гораздо проще, чем описанные ранее варианты - после предыдущих статей я получил довольно много комментариев типа "А что так сложно, нужен домен, нужны сертификаты, и куча всего" - теперь все будет гораздо проще.

Читать далее
Всего голосов 37: ↑37 и ↓0+37
Комментарии304

Ethereum Contract ABI Specification. Взаимодействие с контрактом

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров3.3K

В данной статье я хочу познакомить вас с тем, как осуществляется кодирование данных в транзакции в соответствии с Contract ABI Specification. Мы вручную разберём весь процесс кодирования, создадим контракт и произведём вызов его методов. В конце я покажу как при помощи Contract ABI создать объект-оболочку через web3.js, и через него вызывать методы контракта.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии0
1
23 ...

Информация

В рейтинге
3 111-й
Зарегистрирован
Активность