• Релиз KPHP и движков

      Довольно часто, выступая на различных конференциях, мы делились желанием выпустить под открытой лицензией KittenPHP, согласно традиции, заложенной крупными IT-компаниями, такими как Google и Facebook.

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

      В связи с этим под катом вас ждет более подробный рассказ о внутреннем устройстве ВКонтакте и тех инструментах, которые сегодня стали доступны opensource-сообществу.


      Читать дальше →
    • Виджеты для сторонних сайтов

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



        Читать дальше →
      • nodeJS и nonblocking I/O

          Добрый вечер уважаемые читатели,


          На хабре последнее время проскакивало несколько упоминаний о node, быстрой платформе для создания вэб приложений на javascript, обладающей довольно уникальной на сегодняшний день особенностью, неблокирующим I/O (вводом/выводом).

          Для начала о nodeJS:


          1) В качестве языка используется JavaScript
          2) Для выполнения JavaScript используется движок V8 от Google, который работает довольно быстро благодаря компиляции в машинный код перед выполнением.
          3) Для реализации неблокирующего I/O используются libev и libeio, (libev показывает более хорошие результаты по сравнению с libevent)
          4) Для реализации подключения библиотек выбран синтаксис commonJS
          5) Есть возможность писать модули ещё и на C/C++, при этом подключаются они точно так-же как и js модули, это позволит Вам, к примеру, любое узкое место в вашем приложении переписать на C++ без каких либо трудностей.

          В процессе изучения данного момента, что в итоге привело к написанию этой статьи я успел довольно неплохо поиграться с этой особоенностью. И могу сказать, что неблокирующий ввод/вывод очень и очень позитивно сказывается на производительности и устойчивости к нагрузкам.
          Читать дальше
        • Ещё один php шаблонизатор

            Доброго времени суток,

            Хочу рассказать о своём шаблонизаторе для проектов на PHP.
            Понимаю, что рискую быть обвинённым в изобретении велосипеда, поэтому объясню свои мотивы: Большинство шаблонизаторов меня не устраивают изначально, среди них Smarty, Quicky и все им подобные, причина — мне кажется, что шаблонизатор должен избавлять от использования логики в шаблонах, а не навязывать свой синтаксис для той же логики.
            Иначе говоря, такой:
            1. {?$x = 2+2}
            , или такой
            1. {foreach name=my from=array('One','Two','Three') key="i" item="text"}
            подходы для меня абсолютно неприемлимы!
            Пожалуй, из всех шаблонизаторов больше всех удовлетворяет моим требованиям xtemplate, но у него есть целый ряд недостатков которые меня раздражают, например то, что все страницы нужно обрамлять в блоки, или то, что он интерпретирует шаблоны, а не компилирует, благодаря чему скоростью похвастаться не может. Ну и последнее — я решил написать шаблонизатор так, чтобы не было никаких проблем с добавлением функционала, а также, чтобы он был совместим с нативным шаблонизатором, который я использовал до этого, и к которому привык. Дело в том что конструкция 
            1. $tpl->assigned_var='abc';
            которую часто используют нативные шаблонизаторы, мне нравится гораздо больше чем что-нибудь вроде:
            1. $thl->assign('assigned_var','abc');
            Читать дальше