• Линейная алгебра для разработчиков игр

    • Перевод
    • Tutorial
    Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
    Читать дальше →
  • Кручу-верчу, запутать хочу: углы Эйлера и Gimbal lock



      Выставите любой палец левой руки вперед. Давайте, не стесняйтесь, никто не будет над вами смеяться. Это нужно для важного эксперимента. Выставили? Теперь представьте что вы — это ваш палец (ну и бред). Повернитесь под прямым углом направо, затем наверх, и наконец налево. Где вы оказались? Правильно, в том же месте, но уже на спине.

      С некоторой натяжкой именно так работает вращение с помощью углов Эйлера. Немного непредсказуемо и неудобно, не правда ли? Углы Эйлера имеют несколько недостатков, но есть одно особенно нехорошее свойство из-за которого вы не захотите с ними связываться. Его имя — Gimbal lock.

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

      Внимание! Заходя под кат вы подвергаетесь риску поломать голову.
      Ха! Я ничего не боюсь! Где этот gimbal lock?
    • Заводим ramlog на дистрибутивах с systemd

        Из серии «заметки на полях». Больше, чтобы не забыть самому, но, может, кому и пригодится.

        После закупки Raspberry Pi 2 на смену не прожившему и недели Odroid XU4 началось неспешное шаманство по установке и начальной настройке системы под себя. Каково же было разочарование, когда любимый ramlog отказался не только ставиться (руками распакуем, не ленивые), но и запускаться после принудительного «внедрения». Отчаявшись и запросив Гугла, выяснил, что с systemd оно не дружит, от слова «совсем».

        Уже практически собиравшись городить что-то своё, наткнулся на один немецкий пост, где упоминался «адаптированный» ramlog. Потрошение немедленно скачанного образа показало, что там как раз и было сделано то, что мне и хотелось. Посему, вместо изобретения своего велосипеда, предлагаю воспользоваться уже готовым
        по инструкции
      • Управление климатом дешево и сердито (библиотека IRremoteESP8266 и бризер Tion 02)

        • Tutorial
        Нашел способ подружить кондиционер (или другой прибор управляемым пультом дистанционного управления) и умный дом, либо сделать управление этим устройством, например с сотового.
        В теории просто, подключаем esp8266 (ценой около 2 долларов у китайцев) к инфракрасном светодиоду, заливаем прошивку и готово.

        Читать дальше →
      • Не верьте навигатору: уязвимости GPS и ГЛОНАСС



          Изображение: 2Tales, Flickr

          Сейчас приемник GPS/ГЛОНАСС есть не только в каждом смартфоне, но даже в тех устройствах, которые не особенно перемещаются — в промышленных установках, в датчиках телеметрии, в банкоматах. Кроме того, такие приемники обеспечивают навигацию в автоматически управляемых системах, от городского транспорта до военных дронов. Системы глобального позиционирования настолько глубоко проникли во все сферы нашей жизни, что большинство людей пользуются ими, не задумываясь о том, насколько им можно доверять.

          Между тем уже есть множество примеров, подтверждающих, что подобные системы уязвимы к разнообразным атакам, включая spoofing, то есть подмену сигнала. Более 5 лет назад иранские военные смогли посадить американский беспилотник, используя данную технику. А в конце 2016 года темой многих СМИ стали искажения GPS и ГЛОНАСС в центре Москвы, около Кремля: навигаторы вдруг показывали своим пользователям, что они находятся в аэропорту Внуково. Мы решили выяснить, действительно ли нужно обладать возможностями спецслужб, чтобы спровоцировать подобные сбои.
          Читать дальше →
        • Matlab кластер своими руками

          Вступление


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

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

          Подробности под катом >>
          Читать дальше →
        • Знай сложности алгоритмов

          • Перевод
          Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
          Читать дальше →
        • Порождение и выбор моделей машинного обучения. Лекция в Яндексе

            Применение машинного обучения может включать работу с данными, тонкую настройку уже обученного алгоритма и т. д. Но масштабная математическая подготовка нужна и на более раннем этапе: когда вы только выбираете модель для дальнейшего использования. Можно выбирать «вручную», применяя разные модели, а можно и этот процесс попробовать автоматизировать.


            Под катом — лекция ведущего научного сотрудника РАН, доктора наук и главного редактора журнала «Машинное обучение и анализ данных» Вадима Стрижова, а также большинство слайдов.

            Читать дальше →
            • +48
            • 17,4k
            • 1
          • Самодиагностика МЕМС акселерометра, гироскопа и компаса (self test)

              Изучая спецификацию (datasheet) на МЕМС-датчик (акселерометр, гироскоп и проч.) мы сталкиваемся с такой процедурой, как самопроверка (self-test) или самодиагностика. Обычно в спецификациях есть описание, как это делать. Кому интересно: что это и как это правильно делать? — добро пожаловать под кат.


              Читать дальше →
              • +19
              • 10,9k
              • 4
            • В MIT разработали систему позиционирования по Wi-Fi с дециметровой точностью

                Спутниковая технология GPS отлично подходит для автомобильных навигаторов и отслеживания ракет, но в зданиях она практически не работает. Существуют различные «костыли» для навигации внутри помещений — триангуляцией от постоянно меняющих свои координаты окружающих хотспотов, через радиомаячки и т.д. Но вряд ли какой-то из этих способов сравнится по простоте в использовании и точности с новой технологией Chronos, разработанной в Массачусетском технологическом институте.

                Система Chronos работает работает до гениального просто и эффективно. Основная идея в том, что приёмник и передатчик Wi-Fi эмулируют мультигигагерцовые широкополосные радиостанции и одновременно транслируют сигнал сразу во всех доступных диапазонах.
                Читать дальше →
              • Маркетологи уже победили или почему я никогда не куплю себе топовый смартфон

                Перечитывая очередную статью о новом смартфоне очередной именитой компании, я в милионный раз споткнулся об эпитет «бюджетный», применённый к смартфону стоимостью около 13 тысяч рублей.



                Достаточно, товарищи! Тут не будет сравнения характеристик или рассуждений о жизненной необходимости 18 Мп камеры против 13 Мп. Под катом я подробно, с фактами и с примерами, объясню почему нас всех поимели господа маркетологи.
                Читать дальше →
              • WiFi-чайник в домашних условиях, или как сделать обычный чайник по-настоящему умным

                  image

                  Предисловие



                  Если вы читали мою предыдущую статью (Бегущая строка на Arduino), то наверняка уже знаете, что у нас в университете есть возможность делать аппаратные курсовые проекты. И я, вдохновлённый предыдущей своей работой, решил ещё раз попробовать сделать что-нибудь своими руками. Только теперь тема должна была быть посерьёзнее. Кстати, думать о том, что сделать, я начал ещё на зимних каникулах, то есть до начала семестра. Хотелось сделать что-нибудь интересное и полезное одновременно.

                  Читать дальше →
                • Беспроводные сети ZigBee. Часть 1 [Вводная]

                  • Tutorial

                  Введение


                  Сейчас о концепции IoT («интернета вещей») говорят везде. Появляется «умная» бытовая техника, которая может подключиться к сети (Bluetooth/Wi-Fi) по беспроводному интерфейсу и начать рассылать уведомления о том, что задача по стирке/готовке еды/кипячению воды завершена и неплохо бы что-то с этим сделать. Большинство таких «умных» устройств получает питание непосредственно из электросети. Но как быть, если хочется получать информацию от беспроводного термометра и при этом не менять батарейку каждую неделю? Или иметь беспроводной выключатель с небольшим аккумулятором для которого не понадобится штробить стены? И хорошо бы объединить такие устройства в единую распределенную сеть, которой можно управлять удаленно и которая сама, основываясь на показаниях датчиков/извещателей/счетчиков, могла бы принимать какие-то решения.

                  Специально для решения таких задач была создана беспроводная технология ZigBee, о которой мы и начнем разговор.

                  Читать дальше →
                • Методы оптимизации приема/передачи в сетях Wi-Fi



                    Одной из ключевых технологий для развития беспроводных сетей (например, Wi-Fi) в последние годы является технология MIMO. MIMO — это множественная передача информации с нескольких передатчиков и её получение, а также обработка на нескольких приемниках. Основные задачи MIMO – повысить пропускную способность беспроводного канала и качество связи.
                    Читать дальше →
                  • Reach: GPS с точностью до сантиметра


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

                      Для уточнения спутниковых данных используются дифференциальные системы и RTK (real-time kinematics) технологии, но до последнего времени подобного рода устройства были дорогими и громоздкими. Последние достижения цифровой техники в лице микрокомпьютера Intel Edison помогли решить эту проблему. Итак, встречайте: Reach – первый компактный высокоточный приемник GPS, очень доступный по цене, и, к тому же, разработанный в России.
                      Читать дальше →
                    • Indoor-навигация: Большой обзор iBeacon Hardware

                      • Перевод


                      Мы подготовили перевод большого обзора маячков, работающих по технологии iBeacon, которая применяется и в проекте Navigine – системах для indoor-навигации. В Navigine для навигации внутри помещений мы используем различные технологические решения, однако iBeacon является одним из самых известных и популярных в консьюмерском секторе – поэтому начнем рассказ именно с него.
                      Читать дальше →
                    • Как красиво оформить публикацию на Хабре

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

                      И первый лайфхак – кликабельная картинка до ката, которая ведёт сразу внутрь публикации:


                      Читать дальше →
                    • Как написать пост с формулами: markdown + LaTeX

                      • Tutorial
                      Привет! На Хабре периодически появляются статьи, где авторы хотят вставить математические формулы: inline_formula, inline_formula или даже


                      У некоторых это получается, у некоторых — с трудом. parpalak сделал web-сервис для вставки svg формул, и это очень круто. Я хочу дополнить его небольшим скриптом, с которым вставка многих формул сведется к одной команде.

                      Читать дальше →
                    • Фильтр Маджвика

                      • Перевод

                      Предисловие от переводчика


                      Здесь представлен один из новейших методов расчёта ориентации в пространстве по показаниям датчиков акселерометра, гироскопа и компаса — фильтр Маджвика, который, по словам автора, даёт результат лучший, чем применение фильтра на основе метода Калмана в результатах и производительности. Автор — Себастьян Маджвик (его интернет-магазин). Метод описан в статье на английском. Данная работа защищена в Университете г. Бристоля Перевода я не нашёл. Переводчик из меня так себе, особенно таких сложных текстов. Но нам же интересно, что за метод?

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


                      Читать дальше →
                    • Заметки о вращении вектора кватернионом

                      Структура публикации


                      • Получение кватерниона из вектора и величины угла разворота
                      • Обратный кватернион
                      • Умножение кватернионов
                      • Поворот вектора
                      • Рысканье, тангаж, крен
                      • Серия поворотов


                      Получение кватерниона из вектора и величины угла разворота


                      Ещё раз – что такое кватернион? Для разработчика – это прежде всего инструмент, описывающий действие – поворот вокруг оси на заданный угол:

                      (w, vx, vy, vz),

                      где v – ось, выраженная вектором;
                      w – компонента, описывающая поворот (косинус половины угла).
                      Читать дальше →