• Windows Messenger вливается в Skype

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

      Windows Messenger Team поспешила меня уведомить о том, что 15 марта мой Microsoft Messenger-аккаунт превратится в тыкву.

      On 15th March 2013 we are retiring the existing Messenger service globally (except for mainland China where Messenger will continue to be available) and bringing the great features of Messenger and Skype together. Update to Skype and sign in using a Microsoft Account (same as your Messenger ID) and all your Messenger contacts will be at your fingertips. You'll be able to instant message and video chat with them just like before, and also discover new ways of staying in touch with Skype on your mobile and tablet.
      Ну и что?
    • Почему иногда надо бить себя по рукам?

      Доброго дня. Меня зовут Илья и я — перфекционист.

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

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

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

        Однажды меня попросили разобраться с багом: при смене frameRate в произвольном количестве вложенных .swf начинал странно вести себя самописный «твинер» — класс, который интерполирует некоторое значение на заданное время. Вместо своей нормальной деятельности, твинер мог перескакивать значения, мог залипать на каком-то одном, а иногда просто в произвольный момент времени задавать переменной её конечное значение и отчитываться о завершении своей работы. Просящий связывал проблему именно с многоуровневой вложенностью и несовпадении собственного и родительского fps.

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

        Как я писал свой мини-твинер
      • Как реализовать пост-эффект Bloom во Flash

          В первую очередь, очень хочется передать огромный привет замечательному актёру и ходячему пост-эффекту в одном лице: Орландо Блуму. Пока существует гугль — ты не будешь забыт.

          Часть первая. Блюр



          Важное ограничение


          Прежде всего, стоит понимать, что расчёт этих пост-эффектов не может быть выполнен на видеокарте. Связано это с одним замечательным ограничением, за которое мы и любим GPU — одновременно рассчитывается цвет нескольких пикселей. Из-за этого, вы не сможете точно узнать цвет «соседнего» пиксела, так необходимого при реализации этих эффектов. Поэтому, рассчитывать окончательную картинку будем на CPU. Пост-эффекты позволяют значительно сгладить неровности и некрасивые рёбра трёхмерной графики, и значительно улучшает картинку. Скорость выполнения пост-эффекта целиком и полностью зависит от размеров view, соответственно наибольшее падение производительности будет наблюдаться при full-screen картинке. Так же, хочется упомянуть, что ни к какому конкретному движку эти эффекты не относятся и могут быть выполнены на любом изображении, с которого можно снять BitmapData. В данной статье будет рассматриваться применение размытия к картинке, полученной при помощи движка alternativa3d. Кто всё ещё читает — приглашаю под хабракат.
          Читать дальше →
        • Как защититься от SWF-декомпиляторов

          У меня в последнее время с завидной частотой спрашивают: «Как защитить данные, летающие между Flash Player и сервером?». Вместо ответа я предлагал прочитать любые книжки по криптографии, а от сильно наглых отбивался следующим кодом.

          var myAge:Number = 23; //Ключ
          var someTextToEncode:String = 'Sometext, or xml, or anything else'; //Текст для шифрования
          var arr:Array = new Array();
          var l:Number = someTextToEncode.length;
          var encodedText:String = '';
          for (var i:Number = 0; i< l; i++){
          encodedText += String.fromCharCode(someTextToEncode.charCodeAt(i) + myAge); //Шифруем методом сдвига позиции кода символа. Просто и со вкусом. 90% "хакеров" на этом этапе уже отсеятся.
          }
          post(encodedText); //Метод, посылающий шифрованные данные на сервер


          И от меня отвязывались, копипастя код. И всё у меня было хорошо, до тех пор, пока один из любопытных не спросил: «А как же защитить ключ? Ведь любую флешку можно утащить с сайта и декомпилировать!»

          Способ, как оказалось, очень прост и не требует наличия никаких обфускаторов. Речь пойдёт о стендалон-флешках, скомпилированных одним файлом.
          Читать дальше →