Конференция для веб-разработчиков «ZFConf 2012»

Posted in Events, ZendFramework on April 13th, 2012 by Yaroslav Vorozhko – Be the first to comment

Конференция для веб-разработчиков «ZFConf 2012»

21 апреля, Москва

21 апреля в Москве пройдет очередная ежегодная конференция для веб-разработчиков ZFConf 2012, посвященная популярной платформе Zend Framework.

В этом году с докладом выступит гость из Италии — Enrico Zimuel из Zend Framework Core Team. А также Виктор Фараздаги, Александр Веремьев, Алексей Качаев и многие другие специалисты.

На сайте опубликован полный список докладов и открыта регистрация.

Доклады

Zend Framework 2, a quick start

Enrico Zimuel (Zend Technologies, Zend Framework Core Team)



Code Generation и Scaffolding в Zend Framework 2

Виктор Фараздаги (Simple Square, Senior Developer)



Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL

Александр Веремьев (Zend Framework contributor)



Распределенные сетевые приложения c Zend Framework 2 и ZeroMQ

Алексей Качаев (Сogniance, Senior Software Engineer)



Dependency Management в PHP и Zend Framework 2

Кирилл Чебунин (Creara, Senior PHP Developer)



Кеш без промахов средствами Zend Framework 2

Никита Грибалев (Nival, Lead PHP Developer)



Проектирование архитектуры, внедрение и организация процесса разработки на примере собственного проекта на основе ZF

Антон Великанов (Sand Sign, Founder&CEO)



Capistrano для деплоймента PHP-приложений


Роман Лапин (Evercode Lab, Senior Developer)

К участию также приглашаются спонсоры и инфопартнеры. По всем предложениям и вопросам пишите, пожалуйста, через форму обратной связи.

Следите за последними новостями:

Организатор: компания Wizartech
Партнеры: сообщество Zend Framework и конференция Frameworks Days

ZendFramework Day 12 ноября 2011

Posted in Events, ZendFramework on October 13th, 2011 by Yaroslav Vorozhko – Be the first to comment

Zend Framework Day12 ноября, в Киеве, пройдет конференция “Zend Framework Day” – посвященная популярному PHP фреймворку Zend Framework. Среди докладчиков непосредственные разработчики компонент Zend Framework. Событие соберет лучших PHP и Zend Framework специалистов из Украины, России, Белоруссии и других стран СНГ.

С текущим списком тем и докладчиков можно ознакомиться на странице.

Событие будет интересно не только тем, кто использует Zend Framework, но и всем веб-разработчикам и PHP программистам в частности.

Место проведения — отель “Казацкий”, г. Киев, ул. Михайловская 1/3 (Площадь Независимости).

Со стоимостю участия и другой необходимой информацией вы можете ознакомиться на странице.

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

Сайт конференции – http://frameworksdays.com/event/zend-framework-day-2011
Наши новости в twitter – http://twitter.com/fwdays
Наша страница в facebook – http://facebook.com/fwdays

Увеличиваем производительность Sphinx BuildExcerpts

Posted in Performance, Sphinx Search, Tips And Tricks on August 7th, 2011 by Yaroslav Vorozhko – Be the first to comment

English version of this post.

Начиная с версии 2.0.1 в Sphinx появилась возможность параллельного построения поисковых сниппетов. Под параллельным построением имеется ввиду, что процесс обработки массива текста предназначенного для построения сниппетов будет распределен по нескольким CPU. Приведенная ниже реализация лучше всего подойдет системам в которых требуется генерировать сниппеты для сотен мегабайт текста.

Для распараллеливания процессов в Sphinx предусмотрена опция dist_threads, которая указывает searchd на сколько CPUs разбивать задачу. dist_threads используется как для обработки поисковых запросов в распределенных индексах, так и для обработки сниппетов, которые мы рассмотрим ниже.

Рассмотрим функцию SphinxAPI BuildExcerpt. По умолчанию функция BuildExcerpt в качестве первого параметра принимает массив текста для обработки,
но к сожалению такой вызов функции не использует параллельную обработку.

Но, начиная с версии 2.0.1, для BuildExcerpt был разработана новая опция load_files. load_files указывает Sphinx, что первый параметр функции BuildExcerpt должен содержать имена файлов, в которых должен находиться текст для обработки. Опция load_files совместно с опцией dist_threads позволяет Sphinx распаралеливать процесс построения сниппетов.

К сожалению у данной реализации есть узкое место - это необходимость использовать файловую систему. Так как, прежде чем генерировать сниппеты на основе файлов, надо эти файлы создать, а для жестких дисков это достаточно медленная операция. Поэтому, правильное решение, это создавать файлы в памяти, т.к. запись в память происходит в тысячи раз быстрее, чем на жесткий диск.

Для создания файлов в оперативной памяти в ядро Linux начиная с версии 2.4. включена файловой системой tmpfs, который мы и воспользуемся.

Файловая система

Для этого создадим директорию будущей системы и смонтируем ее.

CODE:
  1. mkdir /space
  2. mount -t tmpfs -o size=1G,nr_inodes=10k,mode=0700 tmpfs /space

В данном примере права на запись будут только у владельца директории /space, а максимальный размер файловой системы будет установлен в 1Gb.

Модифицируем BuildExcerpts

CODE:
  1. function buildExcerptFile($documents, $options = array())
  2. {
  3.     foreach($documents as $doc){
  4.             $file = "/space/".'snip_'.md5($doc).'_'.time();
  5.             file_put_contents($file, $doc);
  6.             $files[] = $file;
  7.         }
  8.  
  9.     $client = new SphinxClient();
  10.         $client->setServer('localhost', 9312);
  11.  
  12.     $res = $client->BuildExcerpts( $files, 'index', $keywords,
  13.         array(
  14.                     'around'=>10,
  15.                     'limit' => 300,
  16.                     'load_files' => 1
  17.                     )
  18.                 );
  19.  
  20.         foreach($files as $file){
  21.             unlink($file);
  22.         }
  23.  
  24.     return $res;
  25. }

Функция работает в три этапа:

  • Первый. Записываем все документы в файлы, причем имена файлов выбираются так, чтоб не получилось коллизий.
  • Второе. Вызываем функцию Sphinx BuildExcerpt, первым параметром передаем массив файлов вместо массива текста. А в третьем параметре указываем опцию load_files = 1
  • Третий. Удаляем созданные файлы для очистки памяти.

Sphinx.conf

В разделе searchd добавляем следующую строку:

CODE:
  1. dist_threads = 2

dist_thread лучше делать равным количеству CPU в системе.

На моих тестовых данных, данная реализация работает в два раза быстрее «стандартного» вызова BuildExcerpts на системе с двумя CPU. Средний размер документа 1-3 Mb, количество документов для одной было равным 100, т.е. один вызов обрабатывал в среднем 200 Mb текста.

Мастер-класс по Sphinx

Posted in Events, Sphinx Search on June 1st, 2011 by Yaroslav Vorozhko – Be the first to comment

В субботу, 18-го июня в Киеве пройдет мастер-класс СОЗДАТЕЛЯ  движка полнотекстового поиска Sphinx Андрея Аксенова "Как готовить Sphinx".

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

Sphinx используют такие монстры, как CraigsList, DailyMotion, Meetup, HupPages, HabraHabr и еще десятки высоконагруженных сайтов. Андрей Аксенов  выступал на многочисленных конференциях в России: "DevPoint 1-2", "РИТ", "DevConf 2011", "HighLoad ++". Организатор конференции пользователей Sphinx в Москве. Автор нашумевшего доклада “Как прекратить писать”.

Дополнительная информация и подробный план мастер-класса можно посмотреть на сайте http://www.smartme.com.ua/sphinx-workshop/

ZFConf 2011: Список докладов и финальная регистрация

Posted in Events on May 10th, 2011 by Yaroslav Vorozhko – Be the first to comment

Приветствуем!

Основные подготовительные работы по конференции закончены. Открыта финальная регистрация!

Пожалуйста, обратите внимание на то, что изменилось место проведения! Мероприятие будет проходить на прошлогодней площадке — в актовом зале ЛГТЦ (Ленгипротранс-Центр), по адресу: Московский пр., 143, ст. м. «Электросила», Санкт-Петербург. Кофе-брейки и обсуждения на флипчартах будут проходить в фойе.

На данный момент также полностью сформирован список докладов:

Гибкая архитектура Zend Framework приложений с использованием Dependency Injection
Алексей Качаев (Сogniance, Senior PHP Developer)

Воюем за ресурсы: Повышение производительности Zend Framework приложения с помощью phpDaemon, Varnish и ESI
Алексей Качаев (Сogniance, Senior PHP Developer)

Behavior Driven Development в PHP и Zend Framework
Константин Кудряшов (KnpLabs, Senior Web Developer)

Разделение труда: Организация многозадачной, распределенной системы в Zend Framework с помощью Job Queue
Александр Готгельф (Magento, PHP-разработчик)

Как может помочь среда разработки при написании приложения на Zend Framework?
Николай Матвеев (JetBrains, разработчик)

Создание REST-API для сторонних разработчиков и мобильных устройств с авторизацией по протоколу OAuth 1.0
Дмитрий Чижевский (Дзен-мани, разработчик)

Толстая модель: История разработки собственного ORM
Михаил Шамин (Геометрия, ведущий разработчик)

Что такое Sphinx, зачем он вообще нужен и как его использовать с PHP (от простого индекса до поискового кластера)
Владимир Федорков (Sphinx, Director of Professional Services)

Стоимость участия в мероприятии составит 1500 руб. В данную сумму входит: участие в самой конференции, кофе-брейки (от внешней кейтеринг-компании), пакет материалов участника и доступ к профессиональным видеозаписям докладов (после мероприятия). Доступно множество способов оплаты (http://www.zfconf.ru/payment-types/).

Торопитесь, количество мест ограничено!

Выпуск подкаста (#4) Виктора Фараздаги о конференции:

http://www.zfcasts.ru/

Обязательно следите за последними новостями:
RSS-канал: http://feeds.feedburner.com/zfconf
Twitter: http://twitter.com/zfconf
Группа ВКонтакте: http://vkontakte.ru/club14951507

Организатор: компания Wizartech (http://www.wizartech.ru/)
Партнеры: русскоязычное ZF-сообщество (http://zendframework.ru/) и конференция ZFConf Ukraine (http://zfconf.org.ua/)

--
Команда ZFConf 2011

WordPress Sphinx Search plugin version 3.0

Posted in Sphinx Search, WPSphinx plugin on April 8th, 2011 by Yaroslav Vorozhko – Be the first to comment

Мы рады представить новую третью версию плагина поиска для WordPress.

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

Кратко о плагине:

  • поиск с помощью Sphinx Search;
  • поддержка Google like запросов;
  • виджеты релевантных, последних и ТОП поисковых запросов;
  • набор инструментов по управлению поисковыми фразами;
  • мастер автоматической установки Sphinx Search;
  • статистика поисковых фраз;
  • все компоненты используют Sphinx Search, количество SQL запросов сведено к минимуму.

Больше информации на официальной странице плагина.

Как увеличить производительность Sphinx Real Time индексов в 5-10 раз?

Posted in Performance, Sphinx Search on March 25th, 2011 by Yaroslav Vorozhko – Be the first to comment

На презентации доклада о Sphinx Real Time индексах на HighLoad++  я показал RT индексы не с лучшей стороны. По сути в докладе я показал, что RT индексы уступают обычным индексам минимум в 5 раз по производительности.

Соответсвенно обсуждение этой проблемы подтолкнуло меня провести эксперименты в поисках оптимальной настройки Sphinx для RT индексов. Задача была обойти или хотя бы достичь производительности обычных индексов.

Результаты и подробности исследования читайте на блоге компании Ivinco целиком посвященному Sphinx Search.