• Пространство состояний в задачах проектирования систем оптимального управления


      Введение


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

      Состоянию системы соответствует точка в определённом евклидовом пространстве, а поведение системы во времени характеризуется траекторией, описываемой этой точкой.

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

      Целью данной публикации является рассмотрение решения задач проектирования систем оптимального управления методом описания пространства состояний с использованием программных средств Python.
      Читать дальше →
    • Ловкость рук и никакого мошенничества: практические советы по ускоренному обучению дизайну для разработчиков

      • Перевод
      Улучшаем дизайн проекта с помощью тактически грамотных действий, а не таланта.

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

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

      Легко опустить руки и сказать: «Я никогда не смогу сделать это должным образом, я не художник!», Но, оказывается, есть уйма ловких приёмов, которые вы сможете использовать, чтобы поднять свою работу на другой уровень, не имея опыта в графическом дизайне.

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

      1. Для создания иерархии используем цвет и вес вместо размера



      Читать дальше →
    • Флаги в аргументах функций

      • Перевод
      Вы когда-нибудь сталкивались с таким кодом?

      process(true, false);

      Эта функция, судя по названию, что-то обрабатывает (process). Но что означают параметры? Какой параметр здесь true, а какой false? По вызывающему коду об этом нельзя судить.

      Нам придется заглянуть в объявление функции, которое дает подсказку:

      void process(bool withValidation,
                   bool withNewEngine);

      Очевидно, автор использует два параметра типа bool как флаги (toggles). Реализация функции может быть похожа на это:

      void process(bool withValidation,
                   bool withNewEngine)
      {
        if (withValidation)  // используется 1-й флаг
          validate(); // % подтвердить
       
        do_something_toggle_independent_1
       
        if (withNewEngine)   // используется 2-й флаг
          do_something_new();
        else
          do_something_old();
       
        do_something_toggle_independent_2();
      }

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

      • Перевод

      — Двигать пиксели в CSS и так было трудно! А теперь мне говорят, насколько круто использовать несемантические названия классов, встроенные стили в HTML и даже писать стили CSS на JavaScript!
      [Вставь тут гифку из «Гриффинов»] — Ха!
      Иллюстрации из Dinosaur Comics Райана Норта


      Как ни странно, CSS считается одновременно одним из самых простых и одним из самых сложных языков для веб-разработчика. Определённо он достаточно прост в начале — вы определяете свойства стиля, значения для конкретных элементов и… это практически всё, что нужно знать! Однако в больших проектах ситуация становится довольно запутанной и сложной, чтобы организовать CSS каким-то осмысленным образом. Изменение любой строчки CSS для стилизации элемента на одной странице часто ведёт к непредвиденным последствиям для элементов на других страницах.

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

      Цель этой статьи — показать исторический контекст, как развивались техники и инструменты CSS до их нынешнего состояния в 2018 году. Поняв эту историю будет легче понять каждый подход и как с выгодой его использовать. Итак, начнём!
      Читать дальше →
    • Принцип Анны Карениной в программировании и ИТ


        «Принципу Анны Карениной» посвящено немало научных публикаций и даже отдельная статья в Википедии. Применим к ИТ и программированию? А может он уже работает против вашего проекта?
        Читать дальше →
      • Почему дизайн Go плох для умных программистов

        • Перевод

        На протяжении последних месяцев я использую Go для имплементаций Proof of Concept (прим.пер.: код для проверки работоспособности идеи) в свободное время, отчасти для изучения самого языка программирования. Программы сами по себе очень просты и не являются целью написания статьи, но сам опыт использования Go заслуживает того, чтобы сказать о нем пару слов. Go обещает быть (прим.пер.: статья написана в 2015) массовым языком для серьезного масштабируемого кода. Язык создан в Google, в котором активно им пользуются. Подведя черту, я искренне считаю, что дизайн языка Go плох для умных программистов.

        Читать дальше →
      • Взлом визуальной системы: 11 оптических иллюзий в графическом дизайне

        • Перевод
        Глубока ли кроличья нора?

        image

        Сколько минут вам потребуется, чтобы понять в чем фишка?

        Фрэнсис Бэкон в 1620 году разделил источники человеческих ошибок, стоящих на пути познания, на четыре группы, которые он назвал «призраками» или «идолами» (лат. idola).

        • «Призраки рода» проистекают из самой человеческой природы, они не зависят ни от культуры, ни от индивидуальности человека. «Ум человека уподобляется неровному зеркалу, которое, примешивая к природе вещей свою природу, отражает вещи в искривлённом и обезображенном виде».
        • «Призраки пещеры» — это индивидуальные ошибки восприятия, как врождённые, так и приобретённые. «Ведь у каждого, помимо ошибок, свойственных роду человеческому, есть своя особая пещера, которая ослабляет и искажает свет природы».
        • «Призраки площади (рынка)» — следствие общественной природы человека, — общения и использования в общении языка. «Люди объединяются речью. Слова же устанавливаются сообразно разумению толпы. Поэтому плохое и нелепое установление слов удивительным образом осаждает разум».
        • «Призраки театра» — это усваиваемые человеком от других людей ложные представления об устройстве действительности. «При этом мы разумеем здесь не только общие философские учения, но и многочисленные начала и аксиомы наук, которые получили силу вследствие предания, веры и беззаботности». [Wikipedia]

        Под катом — наглядная демонстрация уязвимости нашего мозга к атакам через визуальный ввод. Представляю вам перевод статьи продуктового дизайнера и фронтэнд-разработчика Balraj Chana, про то как можно использовать/нейтрализовать эффект оптических иллюзий.
        Читать дальше →
      • Социнжиниринг в военной пропаганде



          Во время Второй мировой англичане достали личные дела командиров немецких подлодок. Вроде бы не очень важная информация для военных целей – лодки-то уже вышли на задания, что им сделаешь. Но к делу подключились тёртые специалисты по пропаганде. У союзников были ежедневные радиопередачи, и вот пример:
          — Мы обращаемся к вам, командир подводной лодки «U-507» капитан-лейтенант Блюм. С вашей стороны было очень опрометчиво оставить свою жену в Бремене, где в настоящее время проводит свой отпуск ваш друг капитан-лейтенант Гроссберг. Их уже, минимум, трижды видели вместе в ресторане, а ваша соседка фрау Моглер утверждает: ваши дети отправлены к матери в Мекленбург…
          Цитата из «Операция «Гроза» — И. Бунич
          Красота, правда? И, главное, в точности соответствует одному из базовых методов социнжинирингового проникновения внутрь инфраструктуры при направленной атаке.

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

          image

          Помните, как продавцы на рынке, широко улыбаясь, уговаривали вас купить что-то, что вам совершенно не было нужно? Или случаи, когда разгневанные соседи, громко стуча по двери вашей квартиры, требовали что-то прекратить, хотя вас в этот момент и не было дома? Или же разговор с начальником о повышении собственной заработной платы, когда вы не знали, как начать? Если что-то подобное происходило в вашей жизни, значит вы были участником переговоров, когда инициатива была не на вашей стороне.
          Читать дальше →
          • +13
          • 8,7k
          • 6