Архив рубрики: PHP

О жизни современного программиста

Реакция на комментарии на Хабре.

Да, питонисты — тихие спокойные ребята, а пхп-шники — агрессивные дурачки, потому что:

1) Питонисты и Рубироиды при каждом удобном случае лезут в топики про php и кричат, что php — гавно, а руби/питон — круто!

2) На форумах и в IRC-чатах, когда кто-то задает вопрос `как это сделать в php/java/с++/c#` тут же находятся рубироиды и питонщики, которые кричат, что это не надо делать на данном языке, а надо делать на руби или питоне! А автор вопроса — мудак!

3) Когда дается ответ на вопрос `как это сделать в php/java/с++/c#` в несколько строк кода, тут же находится довольный рубироид и пишет все в одну только ему понятную строчку и кричит `вот как все просто на руби, а вы мудаки все еще пишете на ХХХ`!

Как же это уже раздражает…

Ребята, если сидит компания из нескольких человек с пивом и обсуждает, как они хорошо съездили в Крым, не надо влазить в их беседу, объясняя, что Крым гавно, а Египет жжот. Есть большая вероятность, что вы получите в морду.

Профилирование PHP под Windows

Рано или поздно все программисты PHP сталкиваются с необходимостью профилирования собственного кода. Она возникает на этапе оптимизации работы веб-приложения. Вообще, профилирование — это подсчет затрат времени на выполнение каждой отдельной функции (в том числе методов классов) в контексте времени генерации страницы-ответа целиком. О профилировании написано в Интернете достаточно много, поэтому на теории заострять внимание смысла нет. «Под катом» описана установка и настройка софта для профилирования PHP-скриптов в ОС Windows.

Читать далее Профилирование PHP под Windows

Smarty 3

Оказывается, шаблонизатор для PHP-сайтов Smarty еще жив! 17 октября на сайте появилась новость о том, что доступен альфа-релиз 3-й версии со значительными изменениями, который не совместим с версией 2.

Читать далее Smarty 3

Zend Framework — это круто!

Zend Framework — это круто. Круто, потому что удобно и логично. Потому что в нем нет ничего лишнего: можно использовать как весь фреймворк целиком, так и отдельные его компоненты. Все компоненты можно заменить своими, не нарушая целостности фреймворка. Зенд не представляет готовые части сайта, и тем более — сайты. Zend Framework — это помощник в создании сайта, не более того. Очень гибкий, масштабируемый.

Читать далее Zend Framework — это круто!

Немного о кешировании: memcache

Установка memcached под Windows

Статья с пошаговой инструкцией по установке memcached под ОС Windows. Скачать дистрибутив для Win32 можно отсюда: http://jehiah.cz/projects/memcached-win32/

Мануал по пользованию memcached из PHP: http://www.php.net/memcache.

Читать далее Немного о кешировании: memcache

Реестр настроект для сайта

Одной из лучших «фишек» Windows считается ее реестр. Есть, конечно, и те, кто реестр считает самым большим злом в мире. У каждой стороны есть свои аргументы. Главный козырь противников реестра — непереносимость софта и невозможность сделать рабочую настроенную версию данной программы. Главный козырь защитников — все настройки хранятся в одном месте, в которое имеют доступ все программы и пользователь. Это облегчает создание снапшотов системы и возможность написания огромного количества разного рода твикеров. Теоретическая упорядоченность реестра за счет дерева каталогов тоже плюс. А так же удобным является автоподстановка ветки текущего пользователя, залогиненного в систему.

Теперь рассмотрим преимущества реестра в применении к веб-сайту.

Читать далее Реестр настроект для сайта

Парсинг GET-запроса в PHP (приколы автоматического парсинга)

Сегодня решил разобраться, как PHP определяет ключ в массив $_GET для параметров, поступивших соответственно методом GET. Честно говоря, такой алогичности в работе этого механизма увидеть я не ожидал. Хотя в целом, почему так получилось, понятно… Читать далее Парсинг GET-запроса в PHP (приколы автоматического парсинга)

Поиск в MySQL. Часть 3 «FULLTEXT IN BOOLEAN MODE»

Поиск с учетом русской морфологии

Поиск в MySQL. Часть 3 «FULLTEXT IN BOOLEAN MODE»

В первой части рассказа о поиске в MySQL рассказывается про использование полнотекстного индекса FULLTEXT. При поиске неких ключевых слов в большом массиве текста, хранящегося в БД, без использования индекса не обойтись. Однако родные возможности полнотекстового поиска в СУБД MySQL не обеспечиват функционал для поиска с учетом русской морфологии. Решение этой проблемы описывалось во второй части «Поиск с учетом русской морфологии». И вот недавно в описанном алгоритме обнаружился большой недостаток. Что это за недостаток и как с ним бороться и описано в этой статье.

Читать далее Поиск в MySQL. Часть 3 «FULLTEXT IN BOOLEAN MODE»

PHP-класс ProfiCaptcha (open source, BSD license): new version

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

Читать далее PHP-класс ProfiCaptcha (open source, BSD license): new version

Информер погоды от Яндекса с определение города по IP (готовый код)

Недавно я заинтересовался темой отображения информера от Яндекс.Погоды посетителю сайта в соответствии с его местоположением. Сам информер Яндекса показывает погоду только в том городе, который выбрал веб-мастер сайта. На практике смысла в таком информере мало (описано в предыдущей статье). Следовательно надо саому определять город, в котором находится посетитель, и выводить ему нужный информер. В процессе изучения темы, я пришел к выводу, что кроме GeoLite City от MaxMind и CNGeoIP нормальных world-wide баз IP->Город нет. Однако, для взаимодействия с сервисом Яндекса база GeoLite City не подходит.

Читать далее Информер погоды от Яндекса с определение города по IP (готовый код)

GeoLite City против CNGeoip

Вчера я протестировал базу GeoLite City от Max Ming. Это бесплатная версия базы, почти ничем не отличающаяся от платной версии. После изучения содержимого базы пришел к неутешительным выводам.

Читать далее GeoLite City против CNGeoip

Использование базы IP по городам от MaxMind

Используем базу IP по городам GeoLite City от MaxMind. Зона покрытия этой базы описана здесь. Лицензия проста как кактус: пользуйтесь на здоровье, даже в коммерческих целях, но все рекламные материалы и документация к продукту должны содержать фразу: «This product includes GeoLite data created by MaxMind, available from http://maxmind.com/». Ну и как обычно — никаких гарантий. От платной версии free-базу отличает чуть-чуть худшее покрытие. Но нам это не мешает.

Читать далее Использование базы IP по городам от MaxMind

Мартовский рейтинг языков программирования от TIOBE

Оказывается, есть такая компания TIOBE Software, которая ежемесячно рассчитывает глобальный рейтинг языков программирования. Называется этот рейтинг «TIOBE Programming Community Index». А вот версия этой штуки за март 2008 года.

Читать далее Мартовский рейтинг языков программирования от TIOBE

Исчезновение сессии. Пропадают куки.

PHP-скриптЕсли вы еще не сталкивались с такими проблемами, то, думаю, столкнетесь в будущем. А самое неприятное в этом то, что определить и выловить такую проблему очень сложно. Читать далее Исчезновение сессии. Пропадают куки.