Как стать автором
Обновить
2
0.2
Андрей Романов @Ra3wum

Инженер-разработчик hardware и ПО ПЛИС

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

BitImageTool — пиктограммы для кнопок и панелек приложений, закодированные в ASCII

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

Статья о том, как легко делать графические кнопки для панелей инструментов, не таская за приложением гору бинарных ресурсов с картинками. Этот метод платформонезависимый и может быть использован в различных языках и средах, позволяющих работать с графикой и растровыми изображениями. Ниже приводятся примеры для C# (WinForms / WPF), JavaScript, Python.

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

Тогда возникла идея - рисовать одноцветные изображения, кодировать их в строку и хранить прямо в свойствах объекта (например - кнопки). Самый простой вид кодировки - когда шесть точек изображения превращаются в шестибитный код, соответствующий некоторому символу из ASCII таблицы с заданным базовым смещением...

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

Погружение в матрицу: расширение RISC-V от T-Head

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

Продолжим нашу «антологию матричных расширений» текстом про независимое матричное расширение RISC-V от компании T-Head. 

Почему мы рассматриваем именно его? Интересно понять, что из себя представляет будущее стандартное матричное расширение RISC-V, попробовать реализовать алгоритм с его использованием, соотнести это со своим предыдущим опытом низкоуровневых оптимизаций. Кроме того, это интересная возможность попробовать написать программу для расширения, которого еще нет ни в одном процессоре, и запустить ее на эмуляторе.

А еще ISA этого расширения весьма минималистична и, на мой взгляд, идеально подходит для тех, кто никогда не использовал матричные расширения в своем коде, но хочет попробовать (или узнать, как это выглядит изнутри). Не переживайте, текст не требует опыта низкоуровневых оптимизаций математических библиотек: погружение в матрицу будет постепенным.

Начать погружение
Всего голосов 24: ↑24 и ↓0+31
Комментарии3

RawTherapee в связке с GIMP: выбор неудачников или рабочие инструменты фотолюбителя?

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

Сразу раскрою интригу: на заданный в заголовке вопрос я без сомнения даю второй из предложенных ответов. Было бы странно, если бы целая статья была посвящена «выбору неудачника», не так ли? На мой взгляд, «выбор неудачника» — это пиратский Adobe Photoshop с пиратским же Lightroom в качестве проявщика. Нет, я не поддерживаю идею платного программного обеспечения (ПО); наоборот, я всецело за то, чтобы урезать и ограничить аппетиты коммерческих компаний, особенно таких, которые де-факто претендуют на монополию в определённой области. Но бороться с этими эксцессами гораздо правильнее не «пиратством и воровством», а методами чисто экономическими, в первую очередь, всемерным расширением ассортимента и сферы использования разного рода бесплатного и опенсорсного ПО. Проявщик RawTherapee и фоторедактор GIMP, о которых говорится в статье далее, относятся как раз к свободно распространяемому программному обеспечению; между тем, функциональность их почти ни в чём не уступает, а местами и значительно превосходит функциональность признанного лидера. (Да, я помню про восьмибитовый цвет в GIMP. Об этом и пойдёт речь ниже!) Важно лишь использовать её должным образом.
Читать дальше →
Всего голосов 52: ↑47 и ↓5+42
Комментарии60

Использование проявщика RAWTherapee в прикладных задачах фотолюбителя

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

В предыдущих статьях я поднимал тему о возможности эффективного использования связки RAWTherapee + GIMP в практике фотолюбителя, не желающего связываться со взломанными продуктами или переплачивать за отчасти ненужную функциональность Adobe Photoshop. Применение RAWTherapee во многих случаях предпочтительнее, чем использование встроенной утилиты Adobe Camera Raw, и во всех известных мне случаях обеспечивает более быстрый и как минимум не менее качественный результат, чем поставляемые с камерами конвертеры. (Исключением является здесь, пожалуй, Olympus Viewer, чудовищно медленный, но зато способный в полной мере дать пользователю прочувствовать знаменитую «магию фирменных цветов Olympus». О том, как этого достигнуть с использованием RAWTherapee, будет сказано чуть ниже.)
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии29

Взламываем головное устройство автомобиля Nissan

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

В комплекте с моим Nissan Xterra поставлялось современное (на то время) головное устройство с сенсорным экраном, встроенной навигацией, дисплеем камеры заднего вида, мультимедийными функциями и возможностью подключения смартфона. Некоторые из самых продвинутых функций доступны только через приложение NissanConnect, требующее регистрации и подписки. Я никогда не пользовался им и даже не уверен, поддерживается ли оно сейчас.

Разве не здорово было бы добиться выполнения кода на устройстве и даже разрабатывать собственные расширения и приложения?

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

В статье также представлен код, позволяющий воспроизвести эти действия на вашем автомобиле, а также пример приложения, выполняющего задачу логирования GPS-данных. Однако здесь вы не найдёте абсолютно никакой информации по обходу механизмов DRM/защиты от копирования, особенно связанных с навигационными картами и онлайн-сервисами. Весь представленный в статье код и инструкции не дают никаких гарантий, воспроизводите их на собственный риск.
Читать дальше →
Всего голосов 86: ↑84 и ↓2+110
Комментарии26

Детектирование движения в видеопотоке на FPGA

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

Предисловие


Меня давно интересовала тема обработки видео, вот только на отладочных платках 7-х и 9-х ARM-ов это получалось очень медленно и от этого становилось не интересно.

В настоящее время полным-полно мощного многоядерного железа и создано много библиотек для работы с видео, но мой выбор пал на ПЛИС.
Читать дальше →
Всего голосов 83: ↑80 и ↓3+77
Комментарии25

Разработка антенн для тестирования клеток Фарадея в МРТ

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

В этой статье я расскажу о том, как разработал специализированный комплект антенн для тестирования клеток Фарадея, применяемых в клиническом оборудовании для магнитно-резонансной томографии. Проект является open-source и доступен для повторения каждому кто желает обзавестись таким весьма необычным инструментарием.

Дайте две
Всего голосов 45: ↑45 и ↓0+45
Комментарии33

Как создать безэховый экранированный бокс своими руками

Время на прочтение5 мин
Количество просмотров20K
Проведение испытаний и оценка качества работы радиоустройств — то ещё веселье. Для таких лабораторных исследований порой требуется специфическое оснащение, которое стоит больших денег. В том числе — безэховые экранированные боксы.

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

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

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

Читать дальше →
Всего голосов 47: ↑43 и ↓4+62
Комментарии62

Информация

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