Записки разработчика

Сайт курсов валют – e-oriental.ru (бывш. currency.servisator.ru)

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

Доступны курсы валют России (рубль), Украины (гривна), Китая (юань), Европы (евро), Израиля (шекель), Казахстана, Грузии, Армении, Канады, Австралии, Монголии, Ирана и Мадагаскара на трех языках (русский, английский, китайский).

Массовое удаление (DROP) таблиц БД MySQL по префиксу

При работе с разными CMS часто встречается задача удалить в БД MySQL сразу большое количество таблиц с одним префиксом. Особенно в том случае, когда одна БД используется несколькими системами со своими префиксами.

Оставлю здесь для себя и посетителей несколько вариантов

1-пиксельные прозрачные GIF и PNG в формате Base64

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

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

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

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

Забавно наблюдать бесконечно-бессмысленные попытки распарсить русскую каптчу латинницей.

Это вроде моей рекомендации коллегам. Если ваш сайт на родной мове и пользователи используют русские ники или ФИО для входа, то сделайте им и посконную каптчу. Сильно их это не затруднит. При настройке из алфавита Captcha надо выкинуть почти все буквы схожие с латинскими, чтобы на картинке необходимость кириллицы опознавалась всегда по характерным кириллическим буквам. И тогда даже оснащенный OCR, но англоговорящий робот, а их подавляющее большинство, стопроцентно обломается на ней. Обломаются и разгадыватели каптч за полцента. Представили себе индуса, который пытается набрать буквы ЖЫ и ШЫ на своем компе с санскритом? :)

Такая вот индейская хитрость.

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

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

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

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

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

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

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

 

Если хотете занятся этим сами, то в общих чертах из моего скромного опыта, сайт надо делать как-то так:

В первую очередь займитесь сайтом.

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

18 октября 2013 года посреди рабочего дня у нашей горячо любимой администрации Приморья стырили сайт. Точнее не стырили, а внезапно изрядная часть горожан, набирая приморскийкрай.рф, стали видеть не сайт администрации ПК, а стрелку осциллографа в самом натуральном виде http://tetr.ru/. Пост в песочнице сразу превратился в срач и наполнился комментариями и версиями специалистов и штатных трепологов. Надо сказать, бдительные у нас люди. Что касается политической бдительности, тут даже Гитлер позавидовал бы. Дополнительного масла в огонь добавил тот момент, что примерно половина пользователей видела на сайте недобро щурящегося губернатора, а вторая половина - пресловутую стрелку осциллографа. Самая упоротая версия из прозвучавших: губернатор за бабки рекламирует проклятых московских капиталистов. Тут мой личный хренометр не выдержал и я попытался разобраться, а что же там происходит. Хотя корень проблемы ясен сразу: у кого-то хреново работает DNS. Одним система доменных имен дает правильный IP-адрес 78.24.220.234, другим - неправильный 151.248.125.106.

Посмотрим на домен приморскийкрай.рф, который на самом деле выглядит как вот такая нечитаемая херня на радость любителям кириллических доменов xn--80apaebccmshldej.xn--p1ai

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

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

Спецификация HTTP 1.1 рекомендует браузерам запрашивать не более двух соединений на хост одновременно. Принята спецификация довольно давно, еще когда деревья были кустарниками, а интернет приходил в дом с телефонного коммутатора, и тогда это имело смысл. Сейчас интернет изрядно потолстел и большинство разработчиков браузеров эту рекомендацию уже давно не соблюдают. Но тем не менее типичные умолчания болтаются где-то в районе 4-х коннектов на хост, а простых пользователей интернета, что способны ускорить его себе, просто увеличив это значение до доступного максимума, я пока не встречал. Так что рекомендации увеличить количество параллельных загрузок, доступных для клиента на серверной стороне, если число объектов веб-страницы превышает десятки штук, уже давно прописались во всех руководствах по оптимизации сайтов. Достигается это довольно простым способом: часть внедряемого контента страниц размещается на других поддоменах вашего сайта и соответственно меняются ссылки в его страницах. Физически эти файлы или скрипты могут располагаться на том же сервере, что и сайт, более того, в той же самой корневой папке.

Импорт баз данных MySQL в CLI

Записываю сюда команды, чтоб не забыть. Может наберется на статью.

Обычно у нас есть файл дампа имя_базы.sql.gz
Тестировалось на MySQL 5.5

Синдикация материалов