…А четвёртого и пятого дня я был на 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 ресурс.
«Оптимизация запросов в 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».
Ну вот, про самое интересное — всего одну строчку! Что за «пиво с горчинкой»?
А если честно, то респект, мне очень понравилось.
Pilsner Urquell — в интернете прочёл.
Ну сравню с 2л баклашкой «Очаково». Но эффект был хорош. :)