• Сравнение скорости разных вариантов взаимодействия скриптов Unity3D

    Вступление


    Я довольно посредственно знаю Unity, так как только относительно недавно начал изучать его и писать свой первый проект, поэтому эта статья ориентирована на таких же как я.


    Я, как наверное и любой кто начинал писать на юнити, быстро понял, что самого банального метода взаимодействия (через синглтоны-менеджеры, Find, GetComponent и т.п.) становится недостаточно и нужно искать новые варианты.


    И тут на сцену выходит система сообщений/уведомлений


    Порывшись в разных статьях я нашел несколько различных вариантов реализации этой системы:


    • На основе встроенного UnityEvents
    • С использованием классической для C# пары Event/Delegate
    • Еще один встроенный старый встроенный функционал SendMessage

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


    Окей, у этого подхода, видимо, есть существенные проблемы со скоростью, но как тогда обстоят дела у других?


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


    Сравнивать решил эти 3 подхода, а так же обычный прямой вызов функции на объекте по его ссылке.
    И как бонус — посмотрим наглядно, как медленно работает Find при поиске объекта каждый Update (о чем кричат все гайды для новичков) Погнали.

    Читать дальше →
  • Маленький ноутбук для системного администратора



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

    К сожалению, мой рабочий Thinkpad x200 слишком тяжёл и громоздок для постоянного ношения, а ничего кардинально лучшего не нашлось. Вообще, маленькие ноутбуки в последнее время скатились к подражанию МакБук Эйру — нечто тонкое, блестящее, с минимумом портов, с функциональностью, принесенной в жертву стилю. Такой ноутбук годится только на то, чтобы ставить лайки в фейсбуке, но никак не для работы.

    Не найдя ничего достойного, я задумался о том, каким-бы получился ноутбук, если-бы его разрабатывали, думая не о маркетинге, а о потребностях реальных пользователей. Например, системных администраторов. Раздумий набралось на целую статью.
    Читать дальше →
  • Автоматизация криптоторговли с Django и Celery

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


    Trade

    Читать дальше →
  • Распределённая система управления на базе SoC FPGA

    Реализация связки прошивки ПЛИС, ПО микроконтроллера NIOS и управляющего ПО под Linux на базе Altera Cyclone V SoC с использованием Avalon Mailbox для создания на их основе распределенной системы управления.
    Читать дальше →
    • +17
    • 2,7k
    • 4
  • Верстаем flex-календарик

    Идет 2018 год, модные пацаны давно уже верстают на grid, а я все на третьем бутстрапе сижу с col-md кочерячусь, мельком поглядывая на четвертый.


    Решил я, что это не дело, и стоит немного знания освежить, но у grid вроде как поддержка пока хромает, а вот flex технологию уже даже утюги поддерживают.


    Вот и решил его освоить. И процессом усвоения с вами поделится. В общем, будем верстать календарик на весь год.

    Читать дальше →
    • +11
    • 5,7k
    • 8
  • Как я проходил тестовое задание на летнюю стажировку в Яндекс

    image

    Привет Хабр, сегодня я расскажу о том, как я проходил тестовое задание на летнюю стажировку в Яндекс. Эта публикация будет полезна начинающим разработчикам, любителям олимпиадного программирования, тем кто неравнодушен к С++ и Java, или просто хочет прочесть интересную статью после трудного рабочего дня.

    Чего ожидать от этой статьи?

    • Introduction, о том что такое стажировки в Яндкесе, как и когда на них подать
    • Мотивация к написанию данной статьи
    • Примеры задач, моё решение и краткий разбор (Можно смело пропустить первые два пункта, и начинать именно отсюда)

    Introduction


    Для тех кто мало знаком с системой отбора на стажировку в Яндексе расскажу вкратце. На сайте яндекса, за несколько месяцев до лета объявляется оплачиваемая вакансия для начинающих разработчиков, в том отделе, в котором вы бы хотели работать (i.e. Яндекс.Диск, Яндекс.Алиса). По ссылке, нужно заполнить форму, о том где Вы учитесь, чем занимаетесь, какой был опыт работы, о чем писали дипломную работы итп. После заполнения формы Вам на почту присылают тестовое задание, на выполнение которого у Вас есть 6 часов, в любой день в течении недели с момента, когда Вы получили это письмо.
    Читать дальше →
  • Управляем браузером с помощью PHP и Selenium

    Интро


    Всем привет! Сегодня я расскажу вам о том, как с помощью PHP можно работать с Selenium.

    Чаще всего это бывает необходимо, когда перед вами стоит задача написать автотесты для web интерфейса или свой парсер/краулер.

    С Википедии
    «Selenium — это инструмент для автоматизации действий веб-браузера.
    В большинстве случаев используется для тестирования Web-приложений, но этим не
    ограничивается. В частности, реализация Selenium WebDriver для браузера phantomjs
    часто используется как веб-граббер.»


    Мы рассмотрим следующие нюансы:

    • Использование Behat/Mink для соединения с Selenium
    • Запуск Selenium в docker, и удаленный доступ по VNC
    • Расширим функционал Behat с помощью Extension Feature
    Читать дальше →
  • DotVVM — Первый взгляд

    Я бы хотел начать серию статей на Хабре о фреймворке DotVVM. Для ознакомления начнем с простого TODO списка.
    Фреймворк разработан на базе ASP.NET. Он прост в изучении и позволяет создавать бизнес-приложения и SPA без JavaScript кода. Все за счет большого количества готовых элементов управления.
    Следующие статьи будут посвящены тому, с чего все началось, каково было писать собственный фреймворк и его поддержку в Visual Studio, а также какие фичи есть в последнем релизе, который вышел в начале этого года.
    Читать дальше →
  • Что такое gtag.js в Google Analytics и нужен ли он вам?

    Вы читаете перевод статьи "What Is gtag.js with Google Analytics and Do I Need It?" автора Amanda Schroeder.


    Если недавно вы добавляли код отслеживания Google Analytics на сайт, то заметили совершенно другой код счётчика, который выглядит так:



    Сложилась какая-то путаница вокруг этого gtag.js кода. Эта статья должна всё прояснить. Вы поймете, нужен вам gtag.js или нет.


    Что такое Global Site Tag или gtag.js?


    За последние годы Google Analytics выпускала несколько обновлений своей библиотеки JavaScript, каждая из которых добавляла новые функции и её рекомендовали использовать.


    Однако, это не совсем то же самое. Это не просто еще одно обновление библиотеки. Global Site Tag создан, чтобы упростить и сделать рациональнее отслеживание для всех продуктов Google.

    Читать дальше →
  • Совершенствуем Redux

    Привет, Хабр! Представляю вашему вниманию перевод статьи "Redesigning Redux" автора Shawn McKay.

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

    • Вам действительно необходима библиотека для управления состоянием?
    • Заслужил ли Redux свою популярность? Почему или почему нет?
    • Можем ли мы придумать лучшее решение? Если да, то какое?

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


    Front-end разработчик не тот, кто попросту передвигает пиксели из стороны в сторону; истинное искусство в знании где хранить состояние. Это кажется сложным только на первый взгляд.

    Давайте рассмотрим возможности, которые предоставляет нам React:

    image
    Читать дальше →