• Создаём собственный физический 2D-движок: части 2-4

    • Перевод
    image


    Оглавление


    Часть 2: ядро движка

    • Интегрирование
    • Метки времени
    • Модульная архитектура
      • Тела
      • Формы
      • Силы
      • Материалы
    • Широкая фаза
      • Отсечение дубликатов контактных пар
      • Система слоёв
    • Проверка пересечения полупространств

    Часть 3: трение, сцена и таблица переходов

    • Трение
    • Сцена
    • Таблица переходов коллизий

    Часть 4: ориентированные твёрдые тела

    • Математика вращения
    • Ориентированные формы
    • Распознавание коллизий
    • Разрешение коллизий

    Читать дальше →
    • +50
    • 23,6k
    • 7
  • Авария Boeing 737 Max глазами разработчика ПО

    • Перевод
    Представляю вашему вниманию перевод статьи «How the Boeing 737 Max Disaster Looks to a Software Developer» Грега Трэвиса. Речь пойдет о том, как желание Боинга сэкономить и «срезать углы» для коммерческой выгоды, а также культура «некомпетентности и неэтичности» в сообществе разработчиков привело к гибели 346 человек. Я не во всем разделяю позицию автора (в частности, я считаю, что человеческий фактор куда большее зло, чем ПО), но с основными доводами сложно не согласиться.

    Ниже очень много букв. Если читать лень, а ознакомиться с темой хочется, то на Хабре есть первая, более короткая версия этой статьи в переводе Вячеслава Голованова, с ней можно ознакомиться здесь.
    Читать дальше →
  • Дизайн интерфейсов встраиваемых систем


      Осциллографы


      Встраиваемые и промышленные системы — моя любимая тема в разработке дизайна. Когда делаешь интерфейс ПО какого-нибудь лазера или яхты — это чистый кайф и творчество.
      На прошлой неделе я посетил выставки expoelectronica и embeddedday именно как UI разработчик. Целью было посмотреть на новинки вживую, пощупать, набраться опыта.
      В итоге я посмотрел более 100 GUI различных систем, но вот с набором опыта возникли проблемы...


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


      Внимание! Много фото!

      Читать дальше →
    • Как создаются роботы, способные пройти там же, где и мы

      • Перевод

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




      Роботы уже много десятилетий умеют ходить на двух ногах. Сегодня наиболее передовые гуманоидные роботы могут шагать по плоским и наклонным поверхностям, подниматься и спускаться по ступеням и пробираться по пересечённой местности. Некоторые даже умеют прыгать. Но, несмотря на этот прогресс, роботы с ногами до сих пор не могут сравниться по ловкости, эффективности и надёжности с людьми и животными.

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

      Нам обязательно нужно создать роботов с ногами, поскольку наш мир предназначен для ног. Мы проходим через узкие места, мы обходим препятствия, мы поднимаемся и спускаемся по ступенькам. Роботам на колёсах или гусеницах тяжело передвигаться в тех местах, которые мы приспособили для наших тел.
      Читать дальше →
    • 10 навыков и знаний необходимых начинающему iOS разработчику

        image

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

        Ко мне и коллегам на собеседования приходит много кандидатов на открытые у нас вакансии, и я отчетливо вижу у многих новичков отсутствие базовых знаний или просто неуверенное владение ими. Хотя в интернете и много статей, книг и курсов (платных и бесплатных), из которых можно получить необходимые знания, не всегда просто понять, на изучении каких тем стоит сконцентрироваться.

        В этой заметке я поделюсь информацией про то, какие навыки и знания я считаю важными для начинающего iOS разработчика, попробую объяснить зачем они нужны и дам ссылки на материалы для их изучения. 
        Читать дальше →
      • Цивилизация Пружин, 1/5

          ### Часть 1. Золотое «Ку»

          Лет в шесть мне попался в руки дедовский справочник[50] по грузовым автомобилям середины 20-го века. Добротный, напечатанный на гладкой плотной бумаге раритет. Единственное, что вообще осталось на память от деда после распада страны, войн и переездов.



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

          Отец был прав. Для грузовиков 60-х годов это правило выполняется с довольно удивительной точностью:

          Читать дальше →
        • Как написать собственный игровой движок на C++

          Перевод статьи Джеффа Прешинга (Jeff Preshing) How to Write Your Own C++ Game Engine.


          Как написать собственный игровой движок на C++


          В последнее время я занят тем, что пишу игровой движок на C++. Я пользуюсь им для создания небольшой мобильной игры Hop Out. Вот ролик, записанный с моего iPhone 6. (Можете включить звук!)



          Hop Out — та игра, в которую мне хочется играть самому: ретро-аркада с мультяшной 3D-графикой. Цель игры — перекрасить каждую из платформ, как в Q*Bert.


          Hop Out всё ещё в разработке, но движок, который приводит её в действие, начинает принимать зрелые очертания, так что я решил поделиться здесь несколькими советами о разработке движка.


          С чего бы кому-то хотеть написать игровой движок? Возможных причин много:

          Читать дальше →
        • Рисуем мультяшный взрыв за 180 строчек голого C++

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

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

          Итого, как в таких условиях нарисовать вот такую картинку за 180 строчек кода?


          Читать дальше →
        • IT в Германии — как искать работу в крупных городах Германии

            Уехать в Германию при наличии опыта работы в IT довольно просто, и множество статей на эту тему помогают определиться с выбором. Эта статья не будет исключением, в ней собраны истории 5х эмигрантов, которые поделились своим опытом работы в крупных городах Германии и рассказали, что нужно делать, чтобы найти работу и успешно продвигаться по карьерной лестнице. В качестве бонуса — особенности выживания в иностранном коллективе и приятные фишки немецкой рабочей среды. Статья написана в формате мини-интервью, 6 вопросов и ответов от каждого автора


            Читать дальше →
          • Сколько зарабатывают ИТ-шники в Германии

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


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

            Читать дальше →
          • Fuck Up story: как я разочаровался в digital-услугах для бизнеса и проимел своё дело (ну почти)

            Это была славная охота.

            Моя жизнь была посвящена ИТ-сфере. Я был инженером, создававшим интересные продукты для больших промышленных компаний. Моей географией была вся Россия, я вживую видел цеха КАМАЗа, ВАЗа и других автогигантов. Но всему в нашей судьбе настаёт предел, и я выгорел. О причинах расскажу как-нибудь в другой раз. Главное, что я, опытный разработчик и техник, ушёл на вольные хлеба и, поскольку у меня появилась семья, решил сделать бизнес — свой магазин товаров для детей, по особым принципам. В общем, как многие из программеров, сделать то, чего не достаёт мне среди предложений на рынке. И знаете, что? Я выяснил, что найти простейших, базовых, нужных профессионалов-подрядчиков очень сложно. Миллион фрилансеров и фирм, а выхлоп… Это был квест, и о нём я должен поведать миру. Не ходите по моим граблям.


            Это самое лучшее, что описало моё состояние
            Читать дальше →
          • Добавляем глубину 2D-спрайтам с помощью отрисованных вручную карт нормалей

            • Перевод

            Пиксель-арт вечен, но это не значит, что инструменты и методики работы с ним должны оставаться на уровне 1993 года.

            Британский разработчик игр Cardboard Sword работает над двухмерным стелс-платформером The Siege and the Sandfox, создаваемом в Unreal Engine 4 с Paper2D. Команда публикует серию дневников разработки, знакомящую других разработчиков с тем, как использовать эти инструменты в собственных играх.

            Одна из основных технических особенностей The Siege and the Sandfox — использование отрисованных вручную тайлсетов и спрайтов с картами нормалей, позволяющих применять в этой игре с достаточно традиционным двумерным пиксель-артом способы трёхмерного освещения.

            Один из арт-директоров Cardboard Sword Кейт Дюк-Кокс недавно рассказал Gamasutra, как компания пришла к использованию этой техники, о том, почему она подходит игре и как можно применить подобные техники в собственных 2D-играх.
            Читать дальше →
            • +28
            • 10,4k
            • 5
          • Как доить коров роботами и сделать на этом промышленный стартап. История разработки R-SEPT



              В 2017 году в СМИ звучала крайне интересная история про стартап, который роботизирует доение коров на промышленных молочных фермах. Компания называется R-SEPT, и тогда она получила 10 миллионов рублей инвестиций. Но год прошел, а новостей, что произошло дальше, все нет. Мы связались с Алексеем Хахуновым (AlexeiHahunov), основателем стартапа и поговорили о разработке. Оказывается весь год его команда доводила прототип робота до ума, и как раз неделю назад провела первые полевые испытания на ферме.

              Под катом — история, как студент-робототехник, выросший на родительской ферме, превратил университетский диплом в промышленный стартап, как собирал с друзьями первые манипуляторы, а потом выходил на уровень государственных программ по роботизации сельского хозяйства. Ну и самое главное — чем железная рука робота и машинное зрение лучше живой доярки.
              Читать дальше →
            • Нечеткая логика против ПИД. Скрещиваем ежа и ужа. Авиадвигатель и алгоритмы управления АЭС

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


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


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


                Как только модель превратилась из листинга Fortran в структурную схему, с ней стало просто и удобно работать, проводя любые, самые «изощренные» эксперименты. Совершенно не случайно у меня оказались реальные алгоритмы управления АЭС. Что позволило быстро собрать модель для экспериментов, не используя при этом никаких формул, да да, только картинки.

                Читать дальше →
              • Переезд в австрийский социализм

                  На Хабре часто пишут про эмиграцию в разные страны, а про Австрию ещё не было. Пора восполнить пробел.



                  Хальштатт


                  Я попробую описать мой опыт переезда в Австрию (в Вену), а также немного расскажу про особенности страны, которые я узнал за 6 лет проживания тут. Старался кратко, заранее извиняюсь, что не получилось :)

                  Читать дальше →
                • Как авиакатастрофа может улучшить разбор факапов в ИТ

                    Вечером 16 августа 1987 года из аэропорта Детройта вылетел рейс 255 компании Northwest Airlines. Он разбился спустя минуту, и в катастрофе погибли 156 человек. Вроде бы очевидная ошибка пилотов привела к исследованиям с участием NASA, изменениям конструкции самолетов и полетных процедур. А еще эта история имеет отношение к управлению качеством, управлению проектами и к вопросу вины и наказания не только сборщиков потерпевшего аварию «Союза МС-10», но и людей, совершивших ошибки на вашей работе.


                    Фото с места аварии из Бюро архивов авиационных инцидентов
                    Читать дальше →
                  • Создание собственной цветовой палитры

                    • Перевод
                    • Tutorial
                    Адаптировано из нашей будущей книги «Рефакторинг UI»

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



                    Такой вычислительный и научный подход к выбору идеальной цветовой гаммы крайне соблазнителен, но не очень полезен.
                    Читать дальше →
                  • В трёх статьях о наименьших квадратах: ликбез по теории вероятностей

                    • Tutorial
                    Полтора года назад я опубликовал статью «Математика на пальцах: методы наименьших квадратов», которая получила весьма приличный отклик, который, в том числе, заключался в том, что я предложил нарисовать сову. Ну, раз сова, значит, нужно объяснять ещё раз. Через неделю ровно на эту тему я начну читать несколько лекций студентам-геологам; пользуюсь случаем, излагаю тут (адаптированные) основные тезисы в качестве черновика. Моей основной целью не является дать готовый рецепт из книги о вкусной и здоровой пищи, но рассказать, почему он таков и что ещё находится в соответствующем разделе, ведь связи между разными разделами математики — это самое интересное!

                    На данный момент я предполагаю разбить текст на три статьи:


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

                    Насколько обоснован теорвер или верите ли вы в теорию эволюции?


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


                    Читать дальше →
                  • Операции над комплексными числами

                      Здравствуй, %username%!
                      Я получил довольно много отзывов о первой части и постарался все их учесть.
                      В первой части я писал о сложении, вычитании, умножении и делении комплексных чисел.
                      Если не знаешь это — скорей беги читать первую часть :-)
                      Статья оформлена в виде шпарлагки, истории здесь крайне мало, в основном формулы.
                      Приятного чтения!
                      Читать дальше →
                    • Введение в комлексные числа

                        Привет!

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

                        image

                        А школьники могут что-то новое узнать ;)
                        // Всех кого заинтересовал прошу под кат.
                        Читать дальше →