Unity3D. Балуемся с мешем. Часть 3 — Деформация меша, основанная на коллизиях

Автор: admin от 24-05-2017, 10:10, посмотрело: 26

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


Сегодня мы будем заниматься деформацией, основанной, на коллизии. Ну и, разумеется, всем, кто заинтересован, добро пожаловать под кат.
Unity3D. Балуемся с мешем. Часть 3 — Деформация меша, основанная на коллизиях
Кадр из старого советского мультика "Брэк"

В бой!

Категория: Программирование » Веб-разработка

 

А пусть тесты сами себя и поддерживают

Автор: admin от 24-05-2017, 09:15, посмотрело: 30

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

Как обычно выглядят тесты?


Очень схематично, каждый юнит-тест обычно состоит из следующих шагов:

  • инициализации входных данных;

  • выполнения бизнес-логики и получения результата;

  • сравнения результата с эталоном.


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

    Но ведь все это можно унифицировать!

    Категория: Программирование

     

    Альтернативная организация проекта на Yii2

    Автор: admin от 23-05-2017, 19:10, посмотрело: 19

    Альтернативная организация проекта на Yii2

    Как предлагается создавать проект на Yii2 сейчас? Выбираете шаблон проекта: basic или advanced, форкаете себе, потом пишете и комитите туда. Бам! Случилась копипаста, ваш проект и шаблон теперь развиваются отдельно. Вам не получить исправлений, внесенных, в шаблон, а в yii2-app-basic, естественно, не возьмут доработок специфических для вашей задачи. Это проблема номер один.


    Как расширяется проект на Yii2? Выбираете подходящие расширения и подключаете их с помощью композера. Находите пример конфига этого расширения в README и копипастите в конфиг своего приложения. Оопс… Опять копипаста. Вылазящяя разными боками, в том числе таким: в большом проекте используется много расширений — конфиг приложения становится огромным и просто нечитаемым. Это проблема номер два.


    Как эти проблемы связаны? Первая решается так: выделяем переиспользуемый код и превращаем в расширение. И снова здравствуйте: у расширения есть свой конфиг — получили вторую проблему.


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


    Хочу поделиться своим вариантом решения этих проблем.

    Категория: Программирование

     

    Умный обход блокировок в Украине

    Автор: admin от 23-05-2017, 16:15, посмотрело: 78

    Умный обход блокировок в Украине

    В статье описывается настройка бесплатного сервиса Zaborona.Help для обхода блокировок сайтов в Украине.

    Особенность конфигурации в том, что через VPN маршрутизируется трафик только к заблокированным сетям, остальные сайты работают напрямую. Работает на всех основных платформах: Windows, Linux, iOS, MacOS, Android.

    То есть не влияет на скорость интернета, не подменяет IP для остальных сайтов и не мешает работе онлайн игр, голосового трафика и т.д.

    Проблемы популярных средств обхода блокировок



    • Браузерные плагины — не работают для мобильных приложений, проксируют через свои сервера весь трафик. Имеют доступ к содержимому страницы и угрожают безопасности.

    • Обычный VPN — маршрутизируют через свои сервера весь трафик. Влияет на скорость интернета, увеличивают задержки, подменяет IP для всех сайтов.

    • Браузеры с прокси — не позволяют обойти блокировку мобильных приложений.



    Процесс настройки описан на примере OpenVPN и может быть легко повторен за несколько минут.
    Настройки на стороне клиента выполняются с помощью одного файла конфигурации и не требуют ручного ввода адресов и паролей.

    Категория: Программирование » Веб-разработка

     

    Производительность I/O бэкэнда: Node vs. PHP vs. Java vs. Go

    Автор: admin от 23-05-2017, 16:10, посмотрело: 28

    Производительность I/O бэкэнда: Node vs. PHP vs. Java vs. Go


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


    Как и в большинстве других ситуаций с несколькими возможными решениями, дело не в том, какой из вариантов лучше, дело в понимании компромиссов. В этой статье мы сравним Node, Java, Go и PHP из-под Apache, обсудим модели ввода/вывода в разных языках, рассмотрим достоинства и недостатки каждой модели и прогоним простенькие бенчмарки. Если вас волнует производительность ввода/вывода вашего следующего веб-приложения, то эта статья для вас.

    Категория: Программирование

     

    Ещё больше простых багов [язык Ада]

    Автор: admin от 23-05-2017, 11:50, посмотрело: 36

    Ещё больше простых багов [язык Ада]


    Примечание переводчика. На Хабре практически полностью отсутствуют публикации, связанные с языком Ада. А ведь это — живой язык, на котором пишут программы, для которого разрабатываются инструменты статического анализа. Чтобы хоть немного заполнить этот информационный вакуум на Хабре, я решил перевести небольшую заметку, связанную с данным языком. Почему её? В ней упоминается PVS-Studio, и мне это приятно :). Плюс, возможно, российские разработчики на языке Ada узнают о новом для себя инструментарии и увидят, что они совсем не одиноки, и жизнь продолжает кипеть в мире Ада.

    Категория: Программирование

     

    Как организовать большое React-приложение и сделать его масштабируемым

    Автор: admin от 23-05-2017, 11:15, посмотрело: 33

    Как организовать большое React-приложение и сделать его масштабируемым

    Одной из лучших особенностей React является то, что он не накладывает каких-либо ограничений на файловую структуру проекта. Поэтому на StackOverflow и аналогичных ресурсах так много вопросов о том, как структурировать React-приложения. Это очень спорная тема. Не существует единственного правильного пути. Предлагаем разобраться в этом вопросе с помощью статьи Джека Франклина, в которой он рассказывает о подходе к структурированию больших React-приложений. Здесь вы узнаете, какие решения можно принимать при создании React-приложений: о выборе инструментов, структурировании файлов и разбивки компонентов на более мелкие части.

    Категория: Программирование

     

    Beyond the clouds: что такое serverless и почему мы понимаем его неправильно?

    Автор: admin от 23-05-2017, 10:45, посмотрело: 38

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

    Beyond the clouds: что такое serverless и почему мы понимаем его неправильно?


    Beyond the clouds: что такое serverless и почему мы понимаем его неправильно? Slobodan – программист-предприниматель из Белграда, последние 5 лет работает CTO в компании Cloud Horizon, которая создает веб-приложения для американских стартапов. Является фанатом javascript и новейших интернет-технологий: чатботы, Serverless, web-assembly.

    Категория: Программирование » Веб-разработка

     

    Избегание ада с помощью монад

    Автор: admin от 23-05-2017, 10:35, посмотрело: 21

    Избегание ада с помощью монад

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


    Ад проверки на null


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


    var a = getData();
    if (a != null) {
      var b = getMoreData(a);
      if (b != null) {
         var c = getMoreData(b);
         if (c != null) {
            var d = getEvenMoreData(a, c)
            if (d != null) {
              print(d);
            }
         }
      }
    }

    Категория: Программирование

     

    Выпуск#2: ITренировка — актуальные вопросы и задачи от ведущих компаний

    Автор: admin от 23-05-2017, 07:50, посмотрело: 20

    На этой неделе мы публикуем подборку из задач и вопросов, которые даёт на собеседованиях Uber. Задачи подобрали различного уровня сложности от «Easy» до «Hard», чтобы всем было интересно. Условие дано на английском языке.

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

    Вопросы:

    1. Какие KPI вы бы использовали, если бы запустили новый сервис Uber в определенной части мира и хотели знать, насколько он успешен?

    2. Какой проект, над которым вы работали, провалился? Могли бы вы сделать что-нибудь, чтобы предотвратить его провал?

    Категория: Программирование