Pull to refresh
185
-10.5

Expert C++ Engineer

Ортографическая проекция в фотографии и прочие интересные фокусы с объективами

Level of difficulty Medium
Reading time 30 min
Views 21K

С тем как работает фотоаппарат мы знакомимся еще со школьной программы. Однако привычное нам из школьного курса сведение объектива к "тонкой линзе" на самом деле не отвечает на массу практических вопросов. Например как удается создавать объективы с ортографической проекцией применяемые в системах технического зрения?

Да-да, такие тоже бывают не только в компьютерной графике, но и в фотографии: попробуйте-ка это объяснить оперируя исключительно в терминах "тонкой линзы". Размер изображения предмета в таких системах (почти) не зависит от того на каком расстоянии от объектива они находятся и это весьма удобно для измерения размеров предмета. В этой статье мы поговорим о том как этого удается добиться, как работает автофокус и пленоптические камеры и о многих других интересных вещах

Так как же работает объектив?
Total votes 162: ↑161 and ↓1 +160
Comments 38

Релокация на машине в Армению

Reading time 14 min
Views 60K

Доброго дня всем хабровчанам. Примерно месяц назад я переехал из Москвы жить и работать в Ереван. С тех пор периодически меня спрашивают про то как мне удалось доехать до Армении на автомобиле, как вообще устроена релокация и как мне живется после переезда. Так что я подумал-подумал и решил написать об этом статью на Хабр.

Для тех кто заинтересовался
Total votes 88: ↑80 and ↓8 +72
Comments 247

И снова про безопасность банков и СМС

Reading time 3 min
Views 22K

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

Итак, господа, что нужно мошенникам для того чтобы полностью скомпроментировать все ваши счета в Альфа-Банке? Как оказалось всего две вещи: номер любой Вашей карты...

...и код из одной СМС
Total votes 35: ↑30 and ↓5 +25
Comments 119

Еще один способ высокотехнологичного мошенничества

Reading time 10 min
Views 54K
В уходящем году я столкнулся с довольно оригинальным и высокотехнологичным способом мошенничества. По всей видимости далеко не новым, но я раньше не встречал подробных описаний того как работают подобные схемы, так что попробую восполнить этот пробел.

Итак, в этой статье мы поговорим о мошенниках, скрывающихся под видом торговых (STP) брокеров занимающихся маржинальной торговлей. Это ребята, которые предоставляют услуги в покупке контрактов на акции компаний, контрактов FOREX и прочих CFD-инструментов.

Однажды в России...
Total votes 98: ↑90 and ↓8 +82
Comments 109

Правильная работа с потоками в Qt

Reading time 13 min
Views 70K
Qt — чрезвычайно мощный и удобный фреймворк для C++. Но у этого удобства есть и обратная сторона: довольно много вещей в Qt происходят скрыто от пользователя. В большинстве случаев соответствующая функциональность в Qt «магически» работает и это приучает пользователя просто принимать эту магию как данность. Однако когда магия все же ломается то распознать и решить неожиданно возникшую на ровном казалось бы месте проблему оказывается чрезвычайно сложно.

Эта статья — попытка систематизации того как в Qt «под капотом» реализована работа с потоками и о некотором количестве неочевидных подводных камней связанных с ограничениями этой модели.

Основы
Thread affinity, инициализация и их ограничения
Главный поток, QCoreApplication и GUI
Rendering thread
Заключение

А Вы правильно работаете с QThread и сигналами?
Total votes 44: ↑44 and ↓0 +44
Comments 38

Выпускники американских университетов превосходят выпускников России, Китая и Индии

Reading time 6 min
Views 89K
Каждый месяц мы читаем новости о недостатках и провалах образования в США. Если верить прессе, то начальная школа в Америке не способна научить учеников даже базовым знаниям, знаний даваемых средней школой явно недостаточно для поступления в колледж, ну а школьники, сумевшие все же продержаться до окончания колледжа, оказываются абсолютно беспомощны за его стенами. Но недавно была опубликована весьма интересная статистика, показывающая что по крайней мере в одном конкретном аспекте подобное мнение весьма далеко от истины. Несмотря на известные проблемы американской системы среднего образования, выпускники американских колледжей специализирующихся на computer science оказались прекрасно развитыми и очень конкурентоспособными специалистами по сравнению со своими зарубежными конкурентами.

Исследование проведенное международной командой исследователей сравнивало между собой выпускников колледжей США с выпускниками школ трех крупнейших стран, в которые США аутсорсят разработку программного обеспечения: Китая, Индии и России. Эти три страны славятся своими первоклассными программистами и победителями международных олимпиад, их репутация безупречна, а успешные действия российских и китайский хакеров постоянно отражаются в новостях. К тому же в Китае и Индии существуют крупные внутренние рынки программного обеспечения, обслуживаемые большим количеством местных специалистов. Все эти факторы делают программистов из этих трех стран весьма релевантной точкой отсчета с которой можно сравнивать американских выпускников. При этом немало студентов из этих стран приезжает учиться в Соединенные Штаты.
Результаты для россиян, увы, оказались разгромными
Total votes 130: ↑111 and ↓19 +92
Comments 639

Настраиваем удобную сборку проектов в Visual Studio

Reading time 43 min
Views 79K
Эта статья является руководством по настройке сборки C++ проектов Visual Studio. Частично она сводилась из материалов разрозненных статей на эту тему, частично является результатом реверс-инжениринга стандартных конфигурационных файлов Студии. Я написал ее в основном потому что полезность документации от самой Microsoft на эту тему стремится к нулю и мне хотелось иметь под рукой удобный референс к которому в дальнейшем можно будет обращаться и отсылать других разработчиков. Visual Studio имеет удобные и широкие возможности для настройки по-настоящему удобной работы со сложными проектами и мне досадно видеть что из-за отвратительной документации эти возможности очень редко сейчас используются.

В качестве примера попробуем сделать так чтобы в Студию можно было добавлять flatbuffer schema, а Студия автоматически вызывала flatc в тех случаях когда это нужно (и не вызывала — когда изменений не было) и позволяла задавать настройки напрямую через File Properties



Укрощаем MSBuild
Total votes 42: ↑39 and ↓3 +36
Comments 37

История неудач SpaceX

Reading time 1 min
Views 19K
Компания SpaceX вчера выложила совершенно шикарное видео где продемонстрированы все многочисленные фейлы (и указаны их причины) через которые компания прошла за три года отрабатывая технологию возврата и мягкой посадки первой ступени.


В видео девять фейлов, шесть взрывов и немного пятничного юмора от SpaceX. Часть кадров мне ранее не встречалась. Enjoy :)
Total votes 52: ↑49 and ↓3 +46
Comments 43

Научно-технические мифы, часть 1. Почему летают самолеты?

Reading time 13 min
Views 153K
В современном мире многие люди интересуются наукой и техникой и пытаются хотя бы в общих чертах понять, как работают вещи, которые их окружают. Благодаря этому стремлению к просвещению существует научно-просветительская литература и сайты, подобные Гиктаймсу. А поскольку читать и воспринимать ряды формул большинству людей затруднительно, то излагаемые в подобных изданиях теории неизбежно подвергаются значительному упрощению в попытке донести до читателя «суть» идеи с помощью простого и понятного объяснения которое легко воспринять и запомнить. К сожалению, некоторые из подобных «простых объяснений» являются в корне неверными, но при этом оказываются настолько «очевидными», что не подвергаясь особому сомнению начинают кочевать из одного издания в другое и нередко становятся доминирующей точкой зрения, несмотря на свою ошибочность.

В качестве одного из примеров попробуйте ответить на простой вопрос: «откуда возникает подъемная сила в крыле самолета»?



Если в Вашем объяснении фигурируют «разная длина верхней и нижней поверхности крыла», «разная скорость потока воздуха на верхней и нижней кромках крыла» и «закон Бернулли», то я вынужден Вам сообщить, что Вы скорее всего стали жертвой популярнейшего мифа, который преподают порою даже в школьной программе.
То есть это как это миф? Ведь там же все внятно и с доказательствами объясняется!
Total votes 130: ↑118 and ↓12 +106
Comments 176

Посадки Falcon 9 становятся рутиной

Reading time 1 min
Views 20K
Утром 14 августа в 5:45 UTC (8:45 утра по Москве) тихо и без особой помпы компания SpaceX запустила очередной Falcon 9 FT, успешно отправив пятитонный спутник JCSAT-16 на геопереходную орбиту.

CRS-9

Отработавшая своё первая ступень совершила мягкую посадку на баржу в Атлантике
Total votes 45: ↑40 and ↓5 +35
Comments 95

Представление движений в 3D моделировании: интерполяция, аппроксимация и алгебры Ли

Reading time 14 min
Views 29K
В этой статье мне бы хотелось рассказать об одном интересном математическом приеме, который будучи весьма интересным и полезным мало известен широкому кругу людей, занимающихся компьютерной графикой.

Сколько существует разных способов представить обыкновенный поворот в трехмерном пространстве? Большинство людей, когда-либо занимавшихся 3D-графикой или 3D-моделированием, сходу назовут три основных широко распространенных варианта:

  • Матрица поворота 3x3;
  • Задание поворота через углы Эйлера;
  • Кватернионы.

Люди с богатым опытом добавят сюда почему-то не пользующийся популярностью четвертый пункт:
  • Ось поворота и угол.

Мне бы хотелось рассказать о пятом способе представления вращений, который симпатичен тем, что удобен для параметризации, позволяет эффективно строить полиномиальные аппроксимации этих параметризаций, проводить сферическую интерполяцию, и главное, универсален — с минимальными изменениями он работает для любых видов движений. Если вам когда-либо был нужен метод, который позволял бы легко сделать «аналог slerp, но не для чистых вращений, а для произвольных движений, да еще и с масштабированием», то читайте эту статью.
Читать дальше →
Total votes 54: ↑53 and ↓1 +52
Comments 16

Давайте знакомиться: компания Align Technology

Reading time 12 min
Views 39K
Представьте себе компанию, будничный рабочий процесс которой включает лазерные резаки, трехмерные принтеры и трехмерные сканеры, рентгеновские томографы, CAD, композитные материалы, автоматические станки с ЧПУ, оптическую и биохимическую лабораторию и даже собственную сборку специализированных железячных девайсов. Здесь широко реализуется поточная обработка данных в реальном масштабе времени, используется 3D печать, занимаются биоинжинерией и программируют FPGA, есть сети хранящие терабайты данных, датамайнинг и даже немножко искусственного интеллекта. Представили? А теперь попробуйте угадать чем эта компания может заниматься. Сразу скажу, что это не космос, не авиация и даже не автомобилестроение.


Заинтересовались?..
Total votes 32: ↑29 and ↓3 +26
Comments 21

Простыми словами о преобразовании Фурье

Level of difficulty Medium
Reading time 14 min
Views 1M
Я полагаю что все в общих чертах знают о существовании такого замечательного математического инструмента как преобразование Фурье. Однако в ВУЗах его почему-то преподают настолько плохо, что понимают как это преобразование работает и как им правильно следует пользоваться сравнительно немного людей. Между тем математика данного преобразования на удивление красива, проста и изящна. Я предлагаю всем желающим узнать немного больше о преобразовании Фурье и близкой ему теме того как аналоговые сигналы удается эффективно превращать для вычислительной обработки в цифровые.

image (с) xkcd

Без использования сложных формул и матлаба я постараюсь ответить на следующие вопросы:
  • FT, DTF, DTFT — в чем отличия и как совершенно разные казалось бы формулы дают столь концептуально похожие результаты?
  • Как правильно интерпретировать результаты быстрого преобразования Фурье (FFT)
  • Что делать если дан сигнал из 179 сэмплов а БПФ требует на вход последовательность по длине равную степени двойки
  • Почему при попытке получить с помощью Фурье спектр синусоиды вместо ожидаемой одиночной “палки” на графике вылезает странная загогулина и что с этим можно сделать
  • Зачем перед АЦП и после ЦАП ставят аналоговые фильтры
  • Можно ли оцифровать АЦП сигнал с частотой выше половины частоты дискретизации (школьный ответ неверен, правильный ответ — можно)
  • Как по цифровой последовательности восстанавливают исходный сигнал


Я буду исходить из предположения что читатель понимает что такое интеграл, комплексное число (а так же его модуль и аргумент), свертка функций, плюс хотя бы “на пальцах” представляет себе что такое дельта-функция Дирака. Не знаете — не беда, прочитайте вышеприведенные ссылки. Под “произведением функций” в данном тексте я везде буду понимать “поточечное умножение”

Итак, приступим?
Total votes 203: ↑192 and ↓11 +181
Comments 188

Information

Rating
Does not participate
Location
Россия
Registered
Activity

Specialization

Software Developer
Lead
From 600,000 ₽
C++
Qt
Algorithms and data structures
Multiple thread
Applied math
Computer vision
Python
Research work
CAD
English