Все записи категории ‘Программирование’

Шпаргалка: извлечь текст из поля bytea (binary) в PostgreSQL

 6 Май, 2026

Cитуация: поле в таблице имеет тип bytea (бинарные данные), но вы точно знаете, что внутри него хранится обычный текст (например, из-за ошибки проектирования или legacy-системы).

Читать далее »

Как обновить ветку в Git без переключения на неё

 1 Май, 2026

Предположим, вы работаете в ветке feature, а коллеги обновили master. Вам нужно подтянуть свежие изменения в локальный master, но не хочется терять контекст и переключаться туда-обратно. Стандартный git pull работает только с текущей веткой. Что делать?

Читать далее »

Как обновить базовую ветку фичи: кейс с rebase

 23 Апр, 2026

В командной разработке на Git регулярно возникает ситуация: вы работаете над фичей в ветке feature/xxx, ответвившись от master. Пока вы пишете код, коллеги успевают задеплоить в master несколько других фич, которые не пересекаются с вашей, но вносят изменения в общий код (например, исправляют баги, добавляют утилиты, меняют конфигурацию). Ваша задача — обновить свою ветку так, чтобы она включила эти “чужие” изменения, но при этом не тащила в историю лишние merge-коммиты и не смешивала логику. Идеальное решение — git pull origin master --rebase. Разберём этот кейс подробно.

Читать далее »

CSS-префиксер для изоляции стилей: добавляем класс-обёртку ко всем правилам

 20 Апр, 2026

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

Читать далее »

C5BB 1.0.11 обновления

 11 Апр, 2026

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

Читать далее »

Изменяем историю коммитов в GIT

 18 Мар, 2026

Рассмотрим две наиболее частые операции — изменение названия коммита и слияние нескольких коммитов в один.

Читать далее »

Хак с Form API в Drupal 7: создаём HTML5‑поля (number, email, tel) без лишних модулей

 15 Мар, 2026

Drupal 7 предлагает мощный Form API для построения форм. Однако при работе с HTML5‑атрибутами можно столкнуться с неожиданным ограничением: если вы попытаетесь задать тип поля numberemail или tel стандартным способом, Drupal проигнорирует ваше значение и оставит тип text (или тот, который определён через #type).

Читать далее »

Создание системы хлебных крошек в WordPress

 27 Фев, 2026

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

В статье я покажу пару «собственных» подходов к генерации крошек, и это может стать основной для вашего решения.

Читать далее »

Защита зараженного сайта: автоматическая сборка черного списка IP-адресов из логов Nginx

 4 Фев, 2026

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

Читать далее »

Ошибка формирования чека в best2pay для WooCommerce при использовании купонов — разбор и решение

 29 Янв, 2026

В одном из проектов столкнулся с проблемой формирования фискального чека в модуле оплаты best2pay для WooCommerce. Ошибка проявлялась не всегда, а только при использовании промокодов и нескольких товаров в корзине. Формально платеж проходил, но строки в чеке формировались некорректно: вместо скидки появлялась строка с «авансовым платежом».

Читать далее »