• 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, а также многими другими.


    Читать дальше →
  • PyGA: использование трекинга Google Analytics в бекенде, написанном на Python

    Для недавно сделанного мной в рамках изучения Flask микросервиса shares.datagreed.ru мне захотелось отслеживать переходы по разным адресам API. Как это сделать, если Google Analytics интегрируется в страницу посредством JS?

    Вот и я тоже не знал. Поиск привел меня к официальной библиотеке на PHP для мобильных сайтов, на которых не предполагалось (когда-то) использовать JavaScript.

    Дальнейшие мои изыскания вылились в небольшой модуль для питона, который позволяет использовать трекинг страниц (ивенты, увы, не поддерживаются) Google Analytics со стороны сервера. Штатно в библиотеку влючены классы для Django и Flask. Класс для Flask в данный момент развернут и обкатывается у меня на shares.datagreed.ru, а класс для Django я пока что не тестировал, так что багрепорты приветствуются.

    Читать дальше →
    • +16
    • 5,4k
    • 8
  • Docstring coverage — покрытие python-кода документацией

    Как проверить, что python-разработчики (или вы сами) хорошо задокументировали код, кроме как просматривать все руками или генерировать pydoc'ом документацию и сравнивать с исходниками? Вот и я не нашел никакого решения, пока случайно не натолкнулся на старый-престарый скрипт, который вдохновил меня на форк и последующую несложную доработку.

    В результате у меня получился простой и полезный (по крайней мере для меня :) ) инструмент Docstring coverage, позволяющий оценить процентное покрытие кода документацией по всему проекту.

    Читать дальше →
    • +12
    • 4,3k
    • 9
  • P4X: удобство E4X в Python

      Когда я в первый раз увидел E4X (ECMAScript for XML), я, признаться, сразу в него влюбился и сильно расстроился, что для Python нет какой-либо библиотеки, эмулирующей подобный синтаксис. Но тут вот недавно случайно наткнулся на замечательнейшую вещь — P4X.
      Читать дальше →
    • Сумасшедший ColorMatrixFilter.

        Игрался сегодня с фильтрами и битмапдатой и случайно обнаружил баг (баг ли?) в FlashPlayer 9.

        Попробуйте в каком-нибудь из проектов, где динамически перерисовывается BitmapData, применить к ней фильтр flash.filters.ColorMatrixFilter со следующей матрицей:

        var cmf:ColorMatrixFilter=new ColorMatrixFilter([1,0,0,0,8000,
        0,1,0,0,8000,
        0,0,1,0,8000,
        0,0,0,1,0])


        Это приведет к сумасшедшему результату в сочетании с BlurFilter. Передавать нужно именно 8000 в массив по указанным индексам. Почему 8000? Потому что в хелпе по BitmapData я наткнулся на информацию о том, что в пределах от -8000 до 8000 на процессорах Intel Pentium3 и старше используется ускорение для проведения вычислений. Ну, я и не задумываясь вставил это значение по индексу [4]. Если сделать хотя бы на единицу больше, то эффект пропадет.

        Думаю, что это, все-таки баг на уровне плеера.

        Посмотреть результат можно по ссылке ниже.

        *ВНИМАНИЕ!* Если вы страдаете эпилепсией, то флешку лучше не смотреть. Я вас предупреждал.

        Посмотреть можно тут (нужно подвигать мышью, для демонстрации эффекта).

        Исходник этого можно взять отсюда.

        UPD: в адоуб отписан багрепорт
        Установлено, что глюк проявляется не на всех марках процессоров и не на всех ОС.