Архив рубрики: 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-скриптЕсли вы еще не сталкивались с такими проблемами, то, думаю, столкнетесь в будущем. А самое неприятное в этом то, что определить и выловить такую проблему очень сложно. Читать далее Исчезновение сессии. Пропадают куки. →