Проблемы с плагином DCaptcha после обновления WordPress
Не так давно обновил движок Wordpress до версии 2.9.2, а затем, через некоторое время, заметил, что в комментарии стали сыпаться буквально тонны спама. Меня это удивило, так как раньше установленный плагин DCaptcha прекрасно с этой проблемой справлялся. Нетрудно было догадаться, что причиной возникновения проблемы стало обновление движка. Толи плагин теперь не цепляется, толи это просто какая-то уличная магия.
На самом деле, все оказалось гораздо проще. Если вы когда-нибудь смотрели на то, по какому принципу работают различного рода каптчи под WP, наверное обращали внимание, что почти все используют функцию wp_set_comment_status(), которая меняет статус комментария, если он не прошел проверку на спам. Если проверка кода безопасности не прошла, комментарий получал статус “delete” и растворялся в пространстве.
Pattern Strategy – поведенческий шаблон проектирования Стратегия
Продолжу цикл статей, посвященный паттернам проектирования описанием паттерна Strategy (стратегия), также известным как Policy.
Strategy – это поведенческий шаблон проектирования, применимый там, где для решения одной и той же задачи могут использоваться различные алгоритмы. Важным моментом является реализация взаимозаменяемости алгоритмов.
Чтобы было понятней, рассмотрим более или менее живой пример. Допустим, ваше приложение должно уметь работать с несколькими типами конфигурационных файлов: XML, INI и т.п. В действительности, набор может быть каким угодно.
Читать далее »
А ты ненавидешь Вконтакте?!
Зашел сегодня на Хабр и вижу там топик о введении очередной фичи в социальной сети Вконтакте. Я не буду приводить никаких ссылок, так как в этом нет смысла. Зайдите на Хабр и почитайте любой пост о Вконтакте, вы поймете, о чем я пишу ниже.
И так, некий пользователь, которого я сразу идентифицировал как особенно крупного тролля, написал разоблачающую депешу. Все в лучших традициях Хабра: масса негатива, претензий ко всем, кому только можно их выдвинуть, слюни, летящие в разные стороны, в попытках доказать недоказуемое. Зависть, непонятного происхождения агрессия, попытка высмеять кого-то просто ради фана – всем этим наполнены почти все посты Хабра, ну или комментарии к ним. Но Вконтакте лидер в анти-рейтинге
.
Читать далее »
PHP и Microsoft Access
С базой данных Access, которую можно найти в офисном пакете Microsoft Office, последний раз я имел возможность общаться еще в те далекие годы, когда учился на первом курсе университета. Нужно заметить, что после знакомства и поверхностного изучения этой БД, впечатления остались не из приятных. Уже тогда у меня был богатый опыт работы с MySQL и некоторые навыки работы с Oracle. На их фоне Access казался немощным, отсталым в развитии и просто неудобным. А неотъемлемый графический интерфейс и активно навязываемые билдеры и «мастера» просто сводили меня с ума.
Как бы там ни было, но с этой БД я встретился вновь, уже в рамках коммерческого заказа, задачей которого ставилась необходимость перенести часть данных из MySQL базы данных.
Pattern Registry – “Реестр”
Сегодня хочу продолжить тему шаблонов проектирования или, как их еще называют, паттернов.
Это вторая по счету заметка и посвящена она будет паттерну Registry, что станет, как я думаю, хорошим и логичным дополнением к первой заметке, в которой речь шла о шаблоне «Одиночка» – Singleton. Ссылку на эту заметку вы можете найти в конце.
Для тех, кто еще ничего не знает о Singleton и не хочет читать мою первую гениальную статью (сарказм, а то мало ли, что подумаете…), я в двух словах поясню, что реализует этот паттерн и для чего.
Подборка CSS хаков
Недавно довелось разверстывать макет и как водится, столкнулся с несоответствием визуального отображения страницы в разных браузерах. Пришлось пользоваться хаками, но потратил немало времени, прежде чем нашел рабочие и валидные. Дабы облегчить жизнь другим, выкладываю подборку, проверенную мною лично.
Если найдете какие-то неточности или ошибки, сообщайте об этом в комментариях. Постараюсь поддерживать данную подборку в актуальном состоянии.
Читать далее »
Склонение русских числительных
Web 2.0 уже давно среди и нас его тенденции распространяются не только на округлые формы стеклянных кнопочек, но и на способы представления привычных вещей. Совершенно не комильфо, если склонение имени существительного не соответствует количественному числительному. Например, если корзина книжного онлайн магазина отображает счетчик имеющихся в ней книг, то пользователь должен видеть «2 книги», а не «2 книг». Тоже касается счетчиков дней или любых иных представлений даты и времени.
Pattern Singleton – “Одиночка”
С появлением некоторого количества свободного времени, я решил расширить свои знания в области паттернов проектирования. Паттерны штука полезная. Их знание и понимание очень часто облегчает жизнь, как при написании своего кода, так и при чтении чужого, конечно при условии, что он реализует тот или иной паттерн. Авось эти знания пригодятся и вам тоже, так что, милости прошу
.
Цикл статей (надеюсь, хватит сил не на одну-две) я начну с описания достаточно полезного паттерна Singleton или как его называют «Одиночка». Паттерн очень легок для понимания и в тоже время может оказаться крайне полезным, наверное, это основные причины по которым я выбрал именно его в качестве темы для первой заметки.
«Легкие» счетчики для HighLoad ресурсов
На днях, на Хабре была статья о том, как можно уменьшить нагрузку на БД, путем экономии ресурсов на обновлении счетчиков. Действительно, различного рода счетчики, например, счетчик просмотра статей, генерируют массу запросов типа UPDATE, при этом неся очень малое количество пользы для кого бы то ни было. Отказаться от счетчиков совсем тоже неправильно. Многим интересно, насколько читаем тот или иной материал. Для кого-то малое количество просмотров статьи станет поводом для того, чтобы не тратить свое драгоценное время на ее прочтение. Есть и другие считалочки, наличие которых еще более привлекательно. Как же быть?
Memcached в действии
Я уже публиковал небольшую статью о том, как установить демон Memcached на локальной машине под управлением ОС Windows. Получив несколько благодарственных отзывов (честно говоря, не ожидал, что статья окажется хоть сколько-нибудь полезной), решил написать еще одну заметку. На этот раз я постараюсь рассказать о том, как использовать установленный демон, а еще лучше о том, как использовать его рационально.
