• Про оптимизацию рендеринга — с оптимизмом

      У меня есть мечта, и она утопична: я хочу, чтобы мои веб-приложения работали идеально. JQuery, AngularJs, React, Vue.js — все обещают производительность. Но проблема совсем не во фреймворках и не в JavaScript. Проблема в том, как браузер рендерит страницу. А делает он это очень плохо.

      Если бы браузер отлично справлялся с рендерингом, то не появился бы такой инструмент, как React Native. Под капотом React Native всё тот же JavaScript, а View нативное, и разница в производительности между нативным приложением и приложением на React Native не будет заметна для рядового пользователя. Другими словами, проблема не в JavaScript.

      Если что-то оптимизировать, то как раз рендеринг. Инструментов, которые нам даёт JavaScript и API браузера, недостаточно. Два года я пытаюсь сделать работу своих продуктов плавной и быстрой, но тщетно. Я почти смирился с тем, что веб останется таким навсегда. В этой статье я собрал всё, что успел узнать об оптимизации рендеринга и применить на проектах, над которыми работал, и рассказываю о своих надеждах на ближайшее будущее. Это будущее, в котором я хочу опираться на устойчивый фундамент стандартов и API браузера, а не CSS-хаки и third-party репозитории для оптимизации производительности.


      Читать дальше →
    • Рекомендации на потоке

        Всем привет!

        Сегодня мы расскажем о том, как с помощью потоковой обработки данных можно увеличить качество рекомендаций и снизить время отклика всей рекомендательной системы в 5 раз. Речь пойдет об одном из наших клиентов – сервисе потокового видео Rutube.


        Читать дальше →
      • Пару слов о «смерти» Flash, Animate CC и Web стандартах

          Сегодня интернет начал разрываться от статей на тему "Adobe прощается с Flash".

          UPD 6 Декабря 2015:
          Продукт менеджер Flash Runtime и Adobe AIR сказал, что они не имеют планы на прекращение работы по Flash Runtime и AIR и переименование продукта для создания контента никак не связано с судьбой Flash Player и смежной экосистемы.


          Все бы ничего, кроме одного нюанса, который сильно меняет смысл — техническая безграмотность и всеобщий copy-paste. Издания перепечатывают друг друга, добавляя всё новые и новые «факты», которых нет в оригинале. Одним словом — испорченный телефон.

          image

          Оригинальная статья http://blogs.adobe.com/conversations/2015/11/flash-html5-and-open-web-standards.html сообщает о том, что Adobe переименовывает Flash Professional в Animate CC. Дополнительно сообщают, что клиенты хотят получать больше поддерживаемых платформ и т.д.
          Читать дальше →
        • Защита in-App Purchase iOS от ломалок с помощю сервера

          Сегодня расскажу о том, как защитить in-app purchases в играх на мобильной платформе iOS с помощью собственного сервера. Практически все компании, которые выпускают свой продукт, заботятся о защищенности своих приложений и как можно больше пытаются защитить их от взлома. Одной из таких компаний является и та, в которой я работаю.
          Читать дальше →
          • –2
          • 6,9k
          • 4
        • Как я выиграл суд с EMS Почта России

            Как я выиграл суд с EMS.
            Итак, как было обещано в вопросе habrahabr.ru/qa/19545, я публикую свой опыт по подаче иска к «EMS – Почта России», который завершился положительно для меня. Впрочем, обо всем по порядку.
            Big Update — сегодня, 6.03.2013 получил деньги. Кафкианский процесс завершен. Ура!
            Читать дальше →
          • MongoDB: слишком много полей для индексации? Используйте общий индекс

            • Перевод

            Суть проблемы


            Бывают ситуации когда документы имеют много различных полей и необходимо иметь эффективные запросы по ним. Например есть документ описывающий человека:

            {
                _id: 123,
                firstName: "John",
                lastName: "Smith",
                age: 25,
                height: 6.0,
                dob: Date,
                eyes: "blue",
                sign: "Capricorn",
                ...
            }
            


            По таким документам можно делать выборку людей по цвету глаз, определенного роста, фамилии и по прочим характеристикам. А что делать если например документ состоит из десятков полей, или заранее не известны, или каждый документ имеет свой набор полей? Как при помощи индексов быстро решить данную проблему, но при этом не строить их по каждому полю, т.к это слишком дорогое решение.
            Читать дальше →
          • Оптимизация сайта для планшетов

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

            Ускорение набора текста с помощью добавления спецсимволов


            Можно менять дополнительные символы виртуальной клавиатуры на необходимые в каждом конкретном случае. Например при наборе обычного текста видим знаки препинания:

            Читать дальше →
          • Sattelite Reign — духовный наследник Syndicate

            Недели три назад на Кикстартере стартовала кампания по сбору средств на разработку и выпуск на рынок игры Satellite Reign, духовного наследника изометрических action/strategy-игр Syndicate и Syndicate Wars.

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

            Поняв, что фанаты не получили то, что хотели, Майк Дискетт (Mike Diskett), автор оригинального Syndicate Wars решил собрать команду из пяти человек для создания правильного продолжателя серии. В команде собраны люди, работавшие над таким играми, как GTA IV, Darksiders II, Star Wars, L.A. Noire, собственно, Syndicate и Syndicate Wars, а также многими другими.


            Читать дальше →
          • 5 полезных батареек для Django

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

              Так, день за днём я насобирал небольшую коллекцию батареек, которые сильно облегчили мне жизнь. Чем и спешу поделиться:
              Читать дальше →
            • Рекомендательные системы: You can (not) advise


                Более полугода назад в поисках что посмотреть, я листал топ произведений. Это занятие повторялось уже много раз и успело надоесть — постоянно приходилось пропускать то, что я смотреть не хочу. Имхонетами раньше не пользовался, да и не доверял им из-за специфики искомых произведений. На сайте, где я производил поиски, была возможность создать свой список просмотренных произведений и выставить оценку, также были доступны оценки других пользователей. Тут мне в голову пришла гениальная идея, как оказалось позднее банальная, — используя оценки других пользователей делать рекомендации. Данная деятельность называется коллаборативной фильтрацией, а программа её реализующая — Рекомендательной системой(РС). Оглядываясь назад я понимаю, что совершил множество ошибок из-за недостатка информации и её труднодоступности в данной тематике, а что самое главное — сильно переоценил РС. В данном посте я сделаю обзор основных типов и алгоритмов РС, а также постараюсь передать часть своих знаний и опыта.
                Читать дальше →