Архив категории ‘Заметки’
Установка MapNik в Gentoo Linux
Все что описано выше проверено на:
- Linux 2.6.23-gentoo-r3k1
- Mapnik 0.6.0 (sci-geosciences/mapnik)
- osm2pgsql 20090707 (sci-geosciences/osm2pgsql)
- PostgreSQL 8.3.7 (dev-db/postgresql-base, dev-db/postgresql-server)
- Python 2.6.2-r1
SQL_CALC_FOUND_ROWS — а я то думал Life Hack
Иногда такое бывает. Вот узнаешь о каком-то лайф хаке, а оказывается что это нифига не лайф ках, а всем известная штука и ты один баран о нем не знал. Первый раз я попал в такую ситуацию когда залечивал очередную спортивную болячку. На физио нужно было открыть тюбик с мазью. Тюбик бы металлический, с железной мембранной под крышечкой. Всю жизнь я ее снимал всем что попадалось под руку. Тут мне под руку попались ключи…медсестра посмотрела на меня как на идиота, взяла тюбик, и специальным выступом на обратной стороне крышечки продырявила мембрану. Это было больше года назад.
И вот это чувство вернулось. Встретил в чужом примере нечто похожее вот на это:
SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 10,20;
полез разбираться, что же за зверь «SQL_CALC_FOUND_ROWS» и выяснилось что это опция позволяющая получать реальное количество строк в FOUND_ROWS(), а не то что осталось от них после LIMIT. А я, как баран, использовал два запроса, вместо такой простой конструкции. Эххх, пора уже отвыкать от MySql 3.23 :)
Проверка обновления страницы на Perl
Иногда нужно последить за обновление определенных страниц сайтов. Раньше даже были специальные программы — «Whats new агенты». Погуглил, в топе выдачи ничего не нашел. Вероятно, из-за засилия динамически генерируемых сайтов, эти программы если не вымерли, а ушли на второй план.
Ну нет, так нет, в конце концов Perl не просто так изобрели. Обожаю Perl:
#!/usr/bin/perl my @url = ( "http://mikhail.krivyy.com/", "http://www.novgorod.ru/", ); system("mv data.md5 data.old"); open(FILE,">data.md5"); foreach (@url) {print FILE $_."\t".(`fetch -q -o - $_ | md5 -q`);} close(FILE); print `diff data.md5 data.old`;
Все это в crontab и все :)
Очередные баги WordPress
- Версия: 2.5.1;
- Ошибка: не работает восстановление пароля.
- Причина: Явная несогласованность разработчиков. Один генерирует пароль из следующих символов — «abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()» . Другой проверяет чтобы пароль содержал только символы латинского алфавита и цифры.
Исправление: Читать дальше »
Особенности при работе с памятью в PHP
Если Вам нужно обрабатывать большие объемы данных, то не стоит использовать для этого PHP. Вот почему:
<?php print memory_get_usage()."\n"; // 55048 $a="z"; print memory_get_usage()."\n"; // 55184 unset($a); print memory_get_usage()."\n"; // 55200 ?>
Тестировалось в 5.2.2 под Windows и в 5.2.5 под FreeBSD
Paul Jones написал в своем блоге на похожу тему.
Использование syslog для логирования работы программ/скриптов
Очередной раз заглянув в почту и обнаружив очередную пачку писем от серверов решил положить этому конец. Упрощало задачу то что, большую часть писем генерируют мои собственные программы и скрипты, которые установлены на различных серверах.
Большая часть этих сообщений не являются критичными. Например, «Невозможно соединится с сервером», «Обработано файлов столько-то», «Затрачено времени столько-то» и т.п. Я рассмотрел два основных варианта этой проблемы:
Нужно ли указывать размеры изображений при верстке HTML
Я начинал верстать HTML еще во времена Netscape 3.X. С самого начала я считал, что указывать размеры изображений нужно.
Страница на которой есть изображения с неуказанными размерами может «прыгать» в процессе загрузки.
Но сейчас стали появляться первые аргументы против, да и вообще верстка в целом уже не та. Не нужно использовать «растяжек», размеры блоков и ячеек таблиц заранее известны, браузеры перестают показывать рамки загружаемых изображений и т.п.
Все это я к чему…недавно не указал размеры у несуществующей картинки, и вот что выдал мне FireFox:
Наконец то пришло время отказываться от FTP
Давно планировал перейти на SFTP, но не мог найти удобного клиента. Ну вот наконец то это случилось.
SFTP — протокол прикладного уровня, предназначенный для копирования и выполнения других операций с файлами поверх надёжного и безопасного соединения. Расшифровывается как SSH File Transfer Protocol — SSH-протокол для передачи файлов. Как правило, в качестве базового протокола, обеспечивающего соединение, и используется протокол SSH2, но это не обязательно.
Немного о поисковой оптимизации
Я не буду рассказывать про правильную расстановку ссылок, специальную обработку текста и другие серые методы оптимизации. Про это и так много написано, да и не сторонник я этих методов. Я расскажу немного о другом — как ускорить процесс индексации сайта поисковыми системами.
Это тема меня тронула во время настройки поисковой системы CNSearch, которую я использую для поиска по новгородскому региону. Оказывается, большую часть сайтов нельзя проиндексировать полностью — они содержат бесконечное количество страниц.
Плавный переход от HTML к XHTML
Я уже не первый год пытаюсь перейти с HTML на XHTML. Привычки дают о себе знать и переход дается не так просто.
Ниже я привожу 9 простых правил, соблюдая которые вы можете из valid HTML получить valid XHTML. Я не буду рассматривать все нюансы и подробности — просто 9 простых правил.
Для проверки правильности кода я использую FireFox с плагином «Tidy Validator». Быстро и удобно