Pull to refresh
10
0
Валера @valeriyvan

User

Send message

Universal Radio Hacker — легкий способ исследовать цифровые радиопротоколы

Reading time3 min
Views44K

Universal Radio Hacker (URH) — невероятно простой и понятный инструмент для анализа цифровых радиопротоколов. В отличие от монстров вроде GNU Radio, освоить его можно за пять минут, без мучений.
Главные особенности URH:

  • Работает на всех платформах — на macOS/Linux/Windows, из коробки! Не нужно часами компилять километры зависимостей.
  • Поддерживает популярные SDR — нативная поддержка RTL-SDR, HackRF, LimeSDR, AirSpy и других.
  • Все в одном — все нужные инструменты встроены в одну программу: анализатор спектра для поиска частот, запись сигнала, интерпретатор цифрового сигнала для автоматического преобразования записанного сигнала в цифровые данные.
  • Поддерживает передачу — для проведения replay-атаки достаточно выделить мышкой нужный отрезок сигнала и нажать Replay. Великолепно!

В статье мы будем анализировать сигнал пульта от шлагбаума, при помощи народного RTL-SDR (радио из дешевого USB ТВ-тюнера) и macOS.

Читать дальше →
Total votes 57: ↑55 and ↓2+53
Comments23

Давайте уберём кватернионы из всех 3D-движков

Reading time13 min
Views30K
image

Для записи трёхмерных поворотов программисты графики используют кватернионы. Однако в кватернионах сложно разобраться, потому что изучают их поверхностно. Мы просто принимаем на веру странные таблицы умножения и другие загадочные определения, и используем их как «чёрные ящики», поворачивающие векторы так, как нам нужно. Почему $\mathbf{i}^2=\mathbf{j}^2=\mathbf{k}^2=-1$ и $\mathbf{i} \mathbf{j} = \mathbf{k}$? Почему мы берём вектор и превращаем его в «мнимый» вектор, чтобы преобразовать его, например $\mathbf{q} (x\mathbf{i} + y\mathbf{j} + z \mathbf{k}) \mathbf{q}^{*}$? Да кому это интересно, если всё работает, правда?

Существует способ описания поворотов под названием ротор, который относится к области и комплексных чисел (в 2D), и кватернионов (в 3D), и даже обобщается до любого количества измерений.

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

Кроме того, для визуализации и понимания трёхмерных роторов не нужно использовать четвёртое пространственное измерение.

Было бы здорово, если бы начали вытеснять использование и изучение кватернионов, заменяя их роторами. Заменить их очень просто, а код останется почти таким же. Всё, что можно делать с кватернионами, например, интерполяцию и устранение блокировки осей (Gimbal lock), можно сделать и с роторами. Но понимать мы начинаем гораздо больше.
Читать дальше →
Total votes 54: ↑53 and ↓1+52
Comments85

Pix4D — от фотографий к измерениям

Reading time6 min
Views18K


Квадрокоптеры и различные БПЛА постепенно становятся привычными инструментами во многих сферах профессиональной деятельности. Очень сложно переоценить возможности дронов в руках фотографов и видеооператоров, но полностью реализовать потенциал этих устройств можно именно в области промышленности и геодезии. В особенности, если коптер работает под управлением специализированного ПО, а материалы аэросъемки проходят компьютерную обработку и используются для анализа различных данных.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments1

Распознавание некоторых современных CAPTCHA

Reading time15 min
Views79K
Именно так называлась работа, представленная мной на Балтийском научно-инженерном конкурсе, и принёсшая мне очаровательную бумажку с римской единичкой, а также новенький ноутбук.

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

Читать дальше →
Total votes 319: ↑313 and ↓6+307
Comments148

Как начинающему разработчику выжить на собеседовании и не сойти с ума на работе

Reading time7 min
Views23K


От переводчика: Валерий Алексиев, опытный программист, рассказал о том, что лучше делать разработчику ПО в самом начале карьерного пути. В частности, какие инструменты стоит использовать и на что обращать внимание на собеседованиях.

Первые несколько лет моей карьеры были годами интенсивного обучения. Я столкнулся с суровой реальностью и понял, что мне необходимо получить много различных скиллов, о которых я раньше даже не думал. Поэтому я решил написать небольшой гайд для других разработчиков. В статье раскрываются такие темы, как собеседования, работа программистом, ресурсы, которые помогут совершенствоваться.
Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments15

Создание собственной цветовой палитры

Reading time4 min
Views44K
Адаптировано из нашей будущей книги «Рефакторинг UI»

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



Такой вычислительный и научный подход к выбору идеальной цветовой гаммы крайне соблазнителен, но не очень полезен.
Читать дальше →
Total votes 94: ↑92 and ↓2+90
Comments12

Композиция UIViewController-ов и навигация между ними (и не только)

Reading time15 min
Views23K


В этой статье я хочу поделиться опытом который мы успешно используем уже несколько лет в наших iOS приложениях, 3 из которых в данный момент находятся в Appstore. Данный подход хорошо зарекомендовал себя и недавно мы сегрегировали его от остального кода и оформили в отдельную библиотеку RouteComposer о которой собственно и пойдет речь.

Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments10

Примеры конфигурации UIViewController-ов используя RouteComposer

Reading time9 min
Views5.1K

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


Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments2

Дорисовывание лиц с помощью машинного обучения

Reading time2 min
Views5.4K
В этом примере показано использование различных алгоритмов машинного обучения для завершения изображений. Цель состоит в том, чтобы предсказать нижнюю половину лица, учитывая его верхнюю половину.

Первый столбец изображений показывает настоящие лица. Следующие столбцы иллюстрируют, как деревья (extremely randomized trees), метод k-ближайших соседей (k nearest neighbors/K-nn), линейная регрессия (linear regression) и RidgeCV (ridge regression complete) завершают нижнюю половину этих лиц.

Читать дальше →
Total votes 23: ↑12 and ↓11+1
Comments5

Абстракция сетевого слоя с применением «стратегий»

Reading time8 min
Views8.8K

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


Часть 1. Взгляд на существующие подходы


Для начала из публикации 21 Amazing Open Source iOS Apps Written in Swift взято приложение Artsy. В нем используется популярный фреймворк Moya, на базе которого и построен весь сетевой слой. Отмечу ряд основных недостатков, которые встретил в данном проекте и часто встречаю в других приложениях и публикациях.

Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments4

Обучение с подкреплением: разбираем на видеоиграх

Reading time7 min
Views5.1K

На AI Conference о применении обучения с подкреплением расскажет Владимир Иванов vivanov879, Sr. Deep learning engineer в Nvidia. Эксперт занимается машинным обучением в отделе тестирования: «Я анализирую данные, которые мы собираем во время тестирования видеоигр и железа. Для это пользуюсь машинным обучением и компьютерным зрением. Основную часть работы составляет анализ изображений, чистка данных перед обучением, разметка данных и визуализация полученных решений».

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

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



Появляются датасеты, где необходимо присвоить класс не просто картинке в целом, а каждому пикселю на изображении. Как, например, в CityScapes.



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

Но действуя в рамках техники обучения с учителем, которая работает для разметки картинок, невозможно решить задачи, где мы хотим не предсказывать метку, а принимать решения. Как, например, в случае автономного вождения, где задача состоит в том, чтобы безопасно и надежно добраться до конечной точки маршрута.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments9

Видеотрансляция на вашем сайте, которая работает

Reading time4 min
Views18K


Создавая систему видеонаблюдения «Линия», мы разработали мощный инструмент для онлайн-трансляций. На «Хабре» данная тема остается неизменно популярной: здесь подробно описывались как готовые решения, так и кейсы по созданию сервера онлайн-вещаний. Мы решили пойти дальше и собираемся устроить стресс-тест нашему сервису и испытать на себе легендарный хабраэффект. А попутно расскажем о самых интересных трансляциях за последние полгода.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments17

Как работает закупщик

Reading time6 min
Views36K


Задача отдела закупок — обеспечивать наличие товара, формировать ассортиментную матрицу, курить матанализ логистики и вести документооборот про всё это.

Закупщик стремится увеличить прибыль сети за счёт оптимального использования всех возможных ресурсов. Это достаточно хардкорная задача оптимизации, потому что требуется серьёзный матаппарат для предсказания спроса, а затем — для определения, что, как и когда брать. Бывали случаи, что нам было проще закупить товара больше, чтобы получить скидку на объём, отработать праздники, а затем уничтожить «избыточный» товар, который обеспечивал объёмную скидку. Списывать (в том случае мы отдали позиции в детские дома) было выгоднее, чем хранить и медленно продавать — аренда склада тоже имеет цену. Это единственный выброс, обычно всё гораздо спокойнее, но часто приходится лавировать между условиями, что лучше — месячная отсрочка платежа или дополнительные 5% скидки. И ответ далеко не всегда однозначен.

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

Ещё один парадокс в том, что закупщик, конечно, должен разбираться в товаре — но не должен его любить. Привязанность к товару заставляет поступать не так, как он численно заслуживает. Надо уметь видеть картину в целом — если товар классный и при этом экономически невыгоден, то его лучше вывести (конечно, если ассортиментный менеджер не считает его якорным).
Читать дальше →
Total votes 53: ↑47 and ↓6+41
Comments43

Ассортимент — классическая задача оптимизации

Reading time7 min
Views29K


Ассортимент очень влияет на выручку магазина, но управляется не самим магазином. Судя по последним исследованиям, ассортиментом в России в целом мало кто управляет эффективно. Просто если поддерживать нужные товары в нужном количестве в нужных местах, можно дико поднять эффективность продаж многих магазинов. Дико — это, например, на треть.

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

Первый вопрос в том, почему вообще может не быть какого-то товара. Это очевидная вещь для любого человека из розницы, но крайне нелогичная для человека со стороны. Столетиями работает рынок, так почему, чёрт побери, до сих пор случаются неувязки?
Читать дальше →
Total votes 77: ↑74 and ↓3+71
Comments89

Решение проблемы обнаружения центральной линии сосуда

Reading time9 min
Views9.3K

Суть задачи


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


Одна из задач врача — найти стенозы и оценить, насколько они опасны. Задача же разработчика, как обычно, облегчить работу конечного пользователя. Для этого необходимо построить полную 3D модель стенок сосуда и провести их первичный анализ. Это является большой и интересной задачей, однако, в её основе лежит более простая и известная проблема — построение центральной линии сосуда.
Читать дальше →
Total votes 43: ↑42 and ↓1+41
Comments15

Как Яндекс создавал дополненную реальность в Картах для iOS. Опыт использования ARKit

Reading time26 min
Views13K

Остается всё меньше людей, которых можно удивить дополненной реальностью (AR). Для кого-то эта технология ассоциируется с игрушкой на пару часов. Другие находят ей более практичное применение.


Меня зовут Дмитрий, и я разрабатываю Яндекс.Карты для iOS. Сегодня я расскажу читателям Хабра о том, как мы создавали маршрутизацию с использованием дополненной реальности. Вы также узнаете об особенностях применения фреймворка ARKit, благодаря которому внедрение дополненной реальности перестало быть уделом лишь специалистов в области компьютерного зрения.



Total votes 48: ↑46 and ↓2+44
Comments21

Представляем DJI Phantom 4 Pro V2.0

Reading time1 min
Views12K
Сегодня компания DJI анонсировала обновление линейки квадрокоптеров DJI Phantom. Новая модель получила не очень значительные отличия от предыдущей модели Phantom 4 Pro и поэтому и называется Phantom 4 Pro V2.0.


Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments13

Как снять и «склеить» сферическую панораму на DJI Mavic Air

Reading time6 min
Views28K
С выходом Dji Mavic Air процесс создания сферических панорам вроде бы упростился до предела — нажал кнопку и сфера готова. Так говорилось в рекламе. Я, честно говоря, уже ожидал, что весь наш шарик отснимут за первые же месяцы продаж, но почему-то этого не произошло.


photo by Paul Oostveen
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments12

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

Reading time7 min
Views17K


В предыдущей статье, Обзор нейронных сетей для классификации изображений, мы ознакомились с основными базовыми понятиями сверточных нейронных сетей, а также лежащими в их основе идеями. В данной статье мы рассмотрим несколько архитектур глубоких нейронных сетей, обладающих большой вычислительной мощностью — таких как AlexNet, ZFNet, VGG, GoogLeNet и ResNet — и подытожим основные преимущества каждой из этих архитектур. Структура статьи основана на записи в блоге Основные понятия сверточных нейронных сетей, часть 3.
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments8

Инструменты Apple для машинного обучения

Reading time10 min
Views20K


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


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

Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments25
1
23 ...

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity