Нынешние деятели от компьютерного маркетинга активно промывают мозги "облачными сервисами", а юзерам лишь остаётся восхищенно вздыхать - до чего дошел прогресс. Короче - не очень всё понятно, но зато круто!
Читать полностью >
11.02.2013г.
// Рубрики:
Perl
Ситуация с шестым перлом, который то ли когда-нибудь выйдет, то ли нет, то ли - это вообще не перл, настолько многих утомила за последние лет десять, что народ с энтузиазмом хватается за идею переименования Perl 5.20 в Perl 7:
http://mail.pm.org/pipermail/moscow-pm/2013-February/015615.html
Что до меня - так я всеми четырьмя конечностями "ЗА", а Perl 6 вообще переименовал бы в какой-нибудь другой проект, чтобы обывателей зря не пугать.
Не все программисты (например, я) непрерывно помнят, что при использовании регулярных выражений, в случае несоответствия шаблона переменной, в конечном итоге в $1 и прочих $2 может оказаться всё, что угодно. И совсем не обязательно это самое "все, что угодно" является undef. Если код большой, то там скорее всего будет находится результат от предыдущего регэкспа. Поэтому, хотелось бы периодически опустошать эти специальные переменные - ссылки на найденный текст.
Вообще говоря, сама идея сомнительна - правильнее проверять возвращаемое значение от сравнения:
if ($str =~ /pattern/ ) {
....
}Тем не менее, изредка бывают ситуации, когда хочется ставить условие по $1, $2, или даже по $&. Конструкция
undef $1;не сработает - ибо "Modification of a read-only value attempted". Существует простой выход - перед вашей регуляркой сделать
'' =~ m/()()()()/;Пустую строку сравниваем с пустым шаблоном и получаем пустые значения в специальных переменных, в этом примере вплоть до $4.
Не буду дискутировать, насколько приведённый приём отвечает "хорошему стилю", но кому-нибудь может оказаться полезен.
То, о чём так долго говорили большевики - свершилось! Запущена новая версия блога -
вордпресс здесь больше не живёт. Как, впрочем, не живут здесь вообще следы php. Теперь этот сайт - чистопородный самопис под mod_perl2 с разными интересными штучками.
Не так давно, появилось желание реанимировать проект и превратить в нечто интересное, хотя бы для узкого круга. Из ближайших планов - организовать более-менее бесперебойную трансляцию новостей по теме. Ну и прикрутить комментарии, вначале для пользователей ЖЖ, а там дальше возможно и для других.
Фух..
Вчера случился трах с модулем Apache2::Request совершенно на ровном месте. Апач под mod_perl2 тихо умирал при попытке сделать
my $req = Apache2::Request->new($r);Сидел и тупо смотрел на 502 ошибку nginx-а, пока не сообразил заглянуть в самый главный апачевский error_log.
Короче, сухой остаток: после того, как под убунтой поставите
sudo apt-get install libapreq2необходимо ручками создать символическую ссылку на библиотеку apreq
ln -s /etc/apache2/mods-available/apreq.load apreq.loadНеобъяснимая недоработка авторов пакета, и времени убил.. (((
Ну, про восьмидесятый порт - это я для красного словца, но вот наткнулся полезный совет и решил сделать себе памятную шпаргалку. Итак:
fuser -v -n tcp 80Вотъ :)
Периодически вспоминаю, а затем также периодически забываю нужное заклинание командной строки для того, чтобы в каталоге поменять в каждом файле одно значение на другое. Одно время даже его написал на бумажке и прилепил к монитору.. потом поменял работу и заклинание опять потерялось. Начинаешь искать в поисковиках - все дружно выдают разную белиберду, вместо нужного.
Короче, вчера опять восстановил, воспользовался и решил сделать запись в блоге - чтобы в следующий раз проще было отыскать :D
Итак, в куче html-шаблонов потребовалось удалить некоторые стили, строка выглядит так:
perl -i.bak -pe "s/\s+class=\"post\-entry\"//ig" *.tplРазумеется, все это без заморочек работает только под юниксами - винда не понимает *.tpl, ей нужно указывать каждый файл по-отдельности. Впрочем, там существуют bat-файлы..
01.08.2009г.
// Рубрики:
web,
cms
Вчера с удивлением наткнулся на любопытное свойство mod_rewrite, может так оно и должно быть, но никогда всерьез не задумывался над последовательностью внутренних механизмов Apache.
Вообщем, есть у меня сайт, движок которого позволяет отдавать разный контент в зависимости от доменного имени. Вообщем, движок общий на кучу сайтов, просто у каждого своя БД. А поскольку robots.txt в папке может быть только один, то была придумана следующая инструкция
RewriteCond %{REQUEST_URI} ^/robots.txt$
RewriteRule .* robots.%{SERVER_NAME}.txt [L]Т.е. для каждого сайта в каталоге лежит свой файлик robots.mysite.ru.txt со своими правилами. Все это хозяйство прекрасно работало до тех пор, пока каким-то чудесным образом в каталоге не оказался реальный robots.txt
После этого апач начхал на правила mod_rewrite и стал отдавать исключительно его.. Впрочем, мне кажется, должна существовать какая-то настройка, меняющее поведение сервера. Поищем на досуге.
Капча - элемент веб-формы, препятствующий отправке данных на сервер роботами (программами). То есть, некоторая проверка на интеллект того, кто заполнил форму. Обычно капча - картинка, на которой изображены цифры (зачастую затрудненно даже человеку разглядеть их) и для продолжения своих действий пользователь должен ввести прочитанное число в поле. Моя идея текстовой капчи проста - предлагается к рассмотрению слово с грамматической ошибкой, требуется исправить ошибку и ввести правильный текст.
Читать полностью >
Речь идёт, разумеется, о ссылках в постах. :)
Многих владельцев форумов угнетает, почти бесконтрольное, проникновение ссылок на их сайт. А легкость заспамливания форумов провоцирует многих "продвиженцев" гадить на них.
Несмотря на кажущуюся безысходность, решение проблемы лежит на поверхности - разработчики форумов вообщем-то сами способны её решить. Ну, да ладно..
Смысл идеи следующий: на хостинге по cron-у запускается с некоторой периодичностью скрипт, который шерстит базу данных форума и все ссылки, содержащиеся в постах трансформирует в неиндексируемый редирект. Для большей неиндексируемости, url редиректа закрыт в robots.txt. Вот, собственно, и всё. :)
Такой скрипт для vbulletin я накануне написал, дополнив изложенный сюжет "белым списком" - перечнем доменов, разрешенным к появлению на страницах форума.
Если кого-нибудь заинтересует реализация "чистого" форума - стучитесь в аську 136059598 (в рабочее время мск) - за скромное вознаграждение поделюсь программой и окажу помощь в ее первоначальной установке на ваш хостинг. :)