PHPConf 2008

PHPConf…А четвёртого и пятого дня я был на PHPConf… Скажу прямо что полезных докладов было не много.

«Что нового в PHP-5.3» Дмитрий Стогов. Я видел презентацию ещё давно, живое выступление ничего нового не открыло. Стало понятно что 5.3 это 6.0 без unicode. По-дороге к релизу появится ещё что-то новое. Я вообще не гонец за новым и самым последним.
Видеть живьём девелопера PHP-Zend очень приятно. Толковый парень воин Си. К ООП он как-то не очень.
Здесь и далее, всё что списком я выписал для себя, что-бы не забыть.

  • Расширенние возможностей конфирурирования — возможность для хоста или дирректории задавать индивидуальную конфигурацию системных параметров.
  • user.ini — аналог .htaccess для PHP.
  • namespaces.
  • Позднее статическое связывание.
  • Возможность управления сборщиком мусора.
  • mysqlnd — ещё более нативная библиотека для MySQL.
  • OCI8 connection pooling — если бы двумя годами раньше….
  • bench.php — тесты PHP производительности. Где-то в дистрибе живут.
  • ext.skel — образец расширения PHP.
  • Описание opcode PHP. В поиске.

«Zend Engine изнутри» автор тот-же. Учили как писать модули для PHP-Zend. Себе в блокнотик записал как цель — написать по-модулю для apache, nginx и php. Кстати на прошлом PHPConf был Игорь Сысоев и рассказывал как писать модули для своего суперсервера nginx.

«Управление Данными (Data management)» Михаил Красовский. Интересный доклад. Человек работает с учёными, а вернее с их данными. Самое сокровеннное что надо запомнить — бэкапа должно быть два и они должны быть в разных географически удалённых местах. Михаил привёл истории про пожар и про потоп когда бэкапы были, но лежали рядом с продукционным сервером. Нужно задуматься и применить.
Всё про что говорил автор получается опытом, причём только опытом. Рекомендую посмотреть слайды презентации.

  • Библиотеки и архивы как опыт создания каталогов документов.
  • ROOT фреймворк для вывода данных.
  • Разделение бизнес данных и аналитики. В общем-то оно понятно…
  • Всегда нужен специалист под рукой по данным с которыми работаешь.
  • The data management association framework — это описание общего подхода к анализу данных.

«Как сохранить данные в браузере?» Илья Кантор. Интересно, но не мой профиль. Илья как всегда провёл большую работу по исследованию возможностей браузеров. Вот что значит увлечённый человек. Если интересен Javascript — центральный Javascript ресурс.

Логотип FreeBSD«Оптимизация запросов в PostgreSQL», Борзов Алексей [SadSpirit]. Алексей очень внешне напоминает чёртика FreeBSD. :)
Про тюнинг запросов и БД было много сказано. А в кулуарах мы его ещё попытали на иструментарий.

  • В PG есть наследование.
  • seq_page_cost, effective_cache_size — показались мне очень важными параметрами конфигурации.
  • explaine_analyze — реальное выполнение запроса с выдачей плана выполнения. Опасно для DELETE, UPDATE. :)
  • ROWS и COST — можно подсказать. Это актуально для подстановки в запрос типа таблица и при множественных объеденениях с маленькими таблицами.
  • PG не кэширует планы запросов между сессиями, так как это делает Oracle. Но кэширует для prepare.
  • Статистики распределения данных — просто помнить про них, они весьма роляют.
  • pg_stats_* — таблицы статистик
  • pg_stat_activity — текущие запросы.
  • pgfouine — анализатор логов. Формирует HTML отчёты.
  • bucardo — multi-master репликация.
  • pgbouncer — пул коннектов.
  • pgfoundry.org — группа разработки PG-ориентированных решений.

«От стартапа до highload: Эволюция веб-проекта или как победить нагрузку», Антон Терехов. Самое полезное выступление. Сделал вывод что на Hightload надо идти. Сам Антон прям в восторге от того что и как у них получилось. На вопросы отвечал суперски, доклад отлично.
Коротко была история эволюциии Photofile.ru. От проекта величиной с один сервер, до проекта в 50 серверов. Статистику пользователей и фоток смотрите на слайдах. Глядя на Антона видел себя. Их проект рос, они изучали новые технологии, включали дополнительные мощности — переаработка кода, переосмысление архитектуры. Разработка ведётся с принятием во внимание рынка, надо делать всё быстро. Не забывать про пользователей и обратную совместимость URL. В итоге пришли к отказоустойчивой, маштабируемой системе. Антон сказал что может быть она и не самая оптимальная в плане потребления железа, зато предсказуемо маштабируема. Ну и… Железо дешевле разработчиков. В общем это тот случай золотой середины, что лучше можно, но не нужно.

  • memcache — надо ставить и смотреть.
  • MySQL репликация — master-slave в действии.
  • Использования nginx для перезаписи(rewrite) URL регулярными выражениями.
  • Photofile.ru — это фотохостинг. Для фото нужно много места. У проекта около 40 файловых серверов и что для меня было удивительно — они активные. На каждом стоит apache. И пользователь заливая свою картинку делает POST на соответвующий сервер. Для этого используется nginx, который переадесует POST запрос с головного сервера на правильный бэкенд. Это действительно классно.
  • Dynamic DNS — нужно почитать что это такое.
  • CARP(Common Address Redundancy Protocol) — протокол избыточности общего адреса. Используется для дублирования сервисов.

«Трансляция флэш-видео», Большов Виктор. Малёк опоздал к началу выступления. Но то что надо увидел. Основы потокового видео nginx+http_flv_module и правильный плеер позволят пользователю смотреть видео с любого фрагмента не закачивая ролик целиком. ffmpeg vs mencode — побеждает mencoder как по качеcтву кодирования, так и по скорости. Кодить видео нужно на отдельном сервере.

«Использование XSLT в проектах» Антонинко Сергей. Я не понимаю зачем громодить громодьё из динамического языка, языка разметки и примудрости для преобразования одного языка разметки в другой. Тяжелого, сложно… Бессмысленно…

«Геопоиск в MySQL…» Автор фишку рубит. Теперь я знаю что по двум координатом GPS(да и вообще по любым двум координатам) можно посчитать растояние. В общем-то оно наверное очевидно, но я не задумывался.

«Introduction to object oriented PHP», Marcus B?rger. Выступление на котором я чуть не умер. Автор выступал два часа. На английском. Выдавал информацию которую надо было думать. Здесь я сделал два вывода: 1) что не понимаю OOP 2) что наверное это понимание мне уже не надо. Но посмотрим, я всё ещё думаю пробовать GTK-Python.
Сама по-себе лекция замечательная. Каждому кто серьёзно программирует на PHP нужно всё это знать. Этого я буду требовать от наших разработчиков.

  • php reflection
  • SPL
  • somabo.de/talks/ — презентации Маркуса.
  • /examples, /internal — примеры их исходников PHP. Почему-то мне показалось важным запомнить.

«Бесплатная версия SQL Server и ее использование в веб-приложениях», Алексей Шуленин. Как сказал коллега, люблю Microsoft за то что с ними весело. Чувак прям сама энергия во плоти. Информационно получил ноль. Ну разве что ещё раз подумалось — Microsoft из всего делает Trial зарезая возможности, причём делает это нелепо.
Тут узнал что в HOME версии Windows XP и Windows Vista не поддерживается работа с доменом. Это на ОС которая ставиться на ноутбуки… Наверное я не знаю чего-то про политику M$ насчёт всего софта, может быть там есть ИДЕЯ зачем пользователям та или иная возможность в ОС…

«Powershell – скриптовый язык будущего», Андрей Бешков. M$ изобрели командную строку ура! Ну в общем такие дела. Ну PS объектно- и .NET- ориентирован. Наверное чего-нибудь толкового выйдет. В прошлом году видели как M$ изобрели текстовые конфиги в MSSQL 2005… :)

«Непонятное в MySQL», Света Смирнова. Это был отжиг от службы поддержки MySQL. Девушки разбирающиеся в SQL, explain, index, grant, permission policy — это да. Объяснили про то как MySQL работает при проверке прав доступа. Надо читать мануал, а то кроме того что правильность понимания работы привелегий нужно смотреть CURRENT_USER ничего не запомнил.

  • mysql_server_install — скрипт закрывающий MySQL как надо.
  • show_warnings — даже не знал что такая опция есть. Возможно стоит включить на тестовом сервере.
  • backup database — есть такая команда. Шикарная статья — Database backup.
  • mysqlbinlog — возможность ручного наката binary log(вёлся бы он ещё)

«Загадки Sphinx. Полнотекстовый поисковик — как все устроено внутри», Аксенов Андрей. Гуру русского языка. Так легко и смешно изъясняется, я аж позавидовал по-хорошему. Как сказал Андрей для наших нужд поиска по архиву Базы знаний, архиву рассылок и трекеру надо использовать mnogosearch, который сильно заточен под вебпоиск. Для чего практически использовать Sphinx я не понял.
Выписал утилиты для тюнинга системы — profile, iostat и vmstat.

Чуть не забыл. Самое-пресамое главное. FastCGI-PHP — следующий шаг к highload после схемы nginx-apache-php-opcodeCache. Андрей Настагунин написал php-fpm — PHP FastCGI Process Manager. Эта штука для правильного управление PHP процессами в режиме работы fCGI. Приложение позволяет разделять память всем процессам, имеет хорошию систему логгирования и главное оно работает. Тему нужно изучать, в рот мне ноги!

Вместо послесловия

Видел в живую разработчика MySQL. Эдакий уставший от жизни и людей парень, который ВСЁ давно уже понял и устал объяснять это ВСЁ другим. Морочится на чистоте кода, определяет себя как чистильщик. Как и подобает руководителю группы недоволен всем и всеми. Программирует на C++, живёт под Ubuntu.
Я пытался выведать что нибудь про то как управление и контроль происходит в MySQL. Как они определяют контрольные точки. Как подбирают и мотивируют програмистов. Человека не очень зажигает эта тема, так что узнать ничего не получилось. Но всё равно было интересно.

Отдельно скажу про пиво с горчинкой — мне лично понравилось.

Ссылки

  • phpconf — Конференция «Современные технологии эффективной разработки веб-приложений с использованием PHP».

PHPConf 2008: 2 комментария

  1. Ну вот, про самое интересное — всего одну строчку! Что за «пиво с горчинкой»?

    А если честно, то респект, мне очень понравилось.

  2. Pilsner Urquell — в интернете прочёл.

    Ну сравню с 2л баклашкой «Очаково». Но эффект был хорош. :)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *