Русский хрен на каптче американским спамерам

Вы англоговорящий спамбот?
Не в первый раз наблюдаю эту картину маслом в логах сервера. Снова с тупой методичностью во все формы сайта раза три-пять в минуту осторожно долбится очередной спам-бот. Подсетка 199/8, ARIN – значит США.

Типичная запись в логе:
«Отправка данных формой "comment_form" была заблокирована (тип теста: Image, модуль: image_captcha). Пользователь ввел "XYrOHqu", хотя правильный ответ был "ХУЮНЯШ".»

Суровая семантическая микроразметка, как она есть

Обратило тут начальство внимание на то, что при поиске в Google, с правой стороны выдачи на некоторые филиалы нашей компании вылезают хрен пойми какие телефоны, название написано с ошибкой и всякие другие проблемы. После анализа ситуации, ваш покорный слуга решил попытаться вправить мозг поиску и наконец-то внедрить на сайт микроразметку, за бурным развитием которой он наблюдает уже пару-тройку лет.

Система «хуков» (Hooks)

CMS Drupal основана на функциях, но использует принципы ООП. Сделано это при помощи системы «хуков». Так называются специальным образом именованные функции, которые позволяют модулям и ядру Drupal взаимодействовать между собой и обмениваться данными оставаясь при этом независимыми. Любой модуль или ядро может либо предоставлять хук, либо реализовывать. В документации на Drupal хуки описываются как функции вида hook_hookname, например, hook_menu - один из основных хуков системы, определяющий обработку HTTP-заппросов. Реализация хука в модулях очень проста.

Принципы работы системы

Каждый модуль Drupal, отображающий страницы сайта, при установке предоставляет ядру информацию о том, какой системный путь он будет обслуживать, включая вызываемую функцию модуля, требуемые права доступа. 

Получив HTTP-запрос Drupal ищет не сопадает ли он с имеющимися в распоряжении системы данными. Совпадение может быть, как полным, так и по маске. 

 

Устройство базы данных Drupal

Продолжение следует...

Код системы пишется с соблюдением стандартов кодирования. Как ядро, так и модули выдают готовый HTML-код, но он всегда может быть перекрыт.

Принципов этого я коснусь ниже, пока замечу, что системным именем является не название папки модуля или темы, а название находящегося внутри info-файла. Например, находящийся в папке cck модуль Content Construction Kit, в системе называется content.

 

Устройство файловой системы Drupal 6

Посмотрим, что мы увидим открыв корневую папку нашего уже работающего проекта сайта (для компактности изображения, некоторые системные папки и README-файлы удалены).

Начну с файлов внизу изображения.

Коротко о Drupal 6

Drupal 6 - это гибкая модульная система управления содержанием сайта, написанная на PHP. Для хранения данных применяются БД MySQL или Postgre SQL. Механизмы кеширования могут использовать базу данных (по умолчанию), файловую систему сайта или кеширование в оперативной памяти сервера (memcached и пр.) как по отдельности, так и в комбинации в зависимости от вида кеша. На Drupal 6 легко реализуется многоязычность (включая разные домены), мультисайтинг (как с общим кодом, так и с общей БД), а также общие пользователи для разных сайтов.

Вводный курс Drupal 6 для разработчика

Потребовалось ввести пару человек в работу над моими проектами на Drupal 6, которые были до этого с ним незнакомы. С друпалом. Поэтому решил написать для специалистов уже хорошо знакомых с веб-разработкой и программированием на других CMS/CMF, но новичков в Drupal. Эта статья поможет вам войти в курс дела и узнать с чем вы столкнетесь на любом большом или не очень Drupal-сайте, если вам вдруг привалило счастье его поддерживать. А также узнать, как все это работает. А для меня это обобщение своего опыта, связанного с поддержкой и разработкой как своих, так и чужих проектов.

Как раскрутить сайт? Нет. Как сделать сайт

Решил со скуки ответить на этот вопрос в одном из форумов и увлекся. Получилась целая статья. Ниже краткое обобщение моего опыта по этому делу.

 

Как у администрации Приморского края сайт увели

18 октября 2013 года посреди рабочего дня у нашей горячо любимой администрации Приморья стырили сайт. Точнее не стырили, а внезапно изрядная часть горожан, набирая приморскийкрай.рф, стали видеть не сайт администрации ПК, а стрелку осциллографа в самом натуральном виде http://tetr.ru/.

Быстрый способ оптимизации параллельных загрузок на Друпал и nginx

Однажды разглядывая «водопадный» дисплей работы сети в Опере по мере того, как в него грузился один из моих проектов, я понял, что пора и на нем сделать оптимизацию того типа, который указан в заголовке статьи. При довольно быстром в пол-секунды получении кода страницы, полсотни вставленных в нее картинок секунд на пять оттягивали заветное событие DOM loaded, да и разница между DOM loaded и Page loaded тоже была того же порядка. Растём-с.

myisamchk - Ремонт таблиц и восстановление данных БД MySQL

Базы данных MySQL бывает падают. С кем не бывает? Движки сайтов при этом ругаются страшными словами в красных рамках про пропавшие таблицы. Но не все так страшно. Базы данных на то и созданы, чтобы все нажитое непосильным трудом не сливалось в Великое Ничто от банальной ошибки записи файла или отключения питания. Наилучшим способом для их починки и восстановления данных является, ИМХО, утилита командной строки - myisamchk.

Часть 1. Введение в GnuPlot. Формат ввода и вывода данных.

В данной статье рассмотрена программа для построения графиков GnuPlot и основные ее возможности. Приведена структура формата передачи данных, определение выходного терминала (формат вывода графиков), настройки типа и высоты шрифта.

Часть 2. Настройка координатных осей, выбор цвета, типа и других атрибутов линий для построения графиков.

В данной статье речь пойдет о настройках типов линий графика в программе GnuPlot, выборе цвета и толщины; о конфигурации отображения координатных осей: выбор типа оси (линейная, логарифмическая), нанесение подписи, отображение координатной сетки.

Часть 3. Оформление легенды для графиков, преобразование данных с помощью gnuplot, использование для графического анализа данных.

Данная статье является частью цикла из 3-х статей о создании и анализе графиков характеристик слухового аппарата с помощью GnuPlot. В ней рассказывается об оформлении легенды и возможностях программы по работе с входными данными: предваритетельной обработке, использовании нескольких файлов для построения группы графиков на одном поле координат.

Адовы клиенты и закон Парето

Я трачу всего лишь 20% времени, чтобы сделать 80% сайта. Остальные 80% времени уходят на 20% сайта и включают в себя такую штуку, как учет пожеланий и требований клиента. Именно поэтому при себестоимости моих рабочих часов по созданию, скажем, интернет-магазина тысяч в пятнадцать (да-да, за неделю сделать можно), вы не услышите от меня цены меньше сорока. Я просто страхую свое время таким образом. А почему при всей однозначности ответа на вопрос, вам шашечки или ехать, клиенты постоянно выбирают шашечки? Я за 10 последних лет могу по пальцам пересчитать тех, кому надо было ехать.