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

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

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

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


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

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



        Читать дальше →
      • Акопов отметился В Контакте

          Александр Акопов, который намерен судить уголовников ВКонтакте, сегодня дал комментарии внутреннему журналу социальной сети. Перед этим в интервью телеканалу Россия-24 он рассказал о том, что намерен навести порядок во всем Рунете. Свои комментарии Акопов оставил прямо под статьей Цыплухина, который прояснял ситуацию школьникам.


          Судя по всему, представители ВКонтакте будут вынуждены ответить на этот приход.
          Читать дальше →
        • 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++ без каких либо трудностей.

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

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

              Поделюсь теми, на которые подписан я:

              Читать дальше →
            • Интернет вверх тормашками

                Добрый день, близится 1 апреля, и очень не хотелось бы, чтобы этот день был таким же как и остальные, поэтому предлагаю особый, айтишный прикол. Это перевод случайно найденной на просторах интернета статьи, собственно, перевел ее a11aud, но ему не хватает кармы на пост, поэтому пишу я (сам a11aud будет очень благодарен за карму:))

                1) Вступление


                Мои соседи воруют мой беспроводной интернет. Да, я мог начать шифроваться, но можно ведь получить кучу удовольствия от созерцания недоумения на их лицах!

                2) Разделяем сеть!


                Я начал с разделения сети на две части: доверяемую и недоверяемую. Доверяемая имела свою долю сети, недоверяемая — свою. Мы используем DHCP сервер, чтобы идентифицировать мак-адреса для разделения на соответствующие группы.
                Читать дальше →
              • Ещё один 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');
                  Читать дальше
                • Бекапим сервер

                    Нередкая это задача, но делается довольно просто!

                    Приступим:

                    1) бэкап мускула

                    Для этого есть очень хорошая утилитка “mysqldump”, она входит в состав мускула. (если вы юзаете lampp то она лежит в “/opt/lampp/bin/mysqldump”)

                    Вобщем набиваем в консоли примерно следующее:
                    mysqldump –all-databases > /mysql.12.12.2008.dump


                    эта команда забекапит все базы данных в файл “mysql.12.12.2008.dump” в корне! на самом деле пишем любой удобный путь! Если вы не рут то нужно указать логин/пароль с помощю –user логин –password пароль

                    Приготовьтесь, это может занять серьёзное количество времени если бд приличного размера.

                    Фишка может не работать, если в какой-нибудь из бд есть ошибки…

                    Кстати говоря можно подойти к проблеме немного подругому и не бекапить все базы, а каждую отдельно, плюс если в какойто из них есть ошибки то мы узнаем в какой, делается так:
                    Читать дальше →