Cитуация: поле в таблице имеет тип bytea (бинарные данные), но вы точно знаете, что внутри него хранится обычный текст (например, из-за ошибки проектирования или legacy-системы).
Все записи категории ‘Программирование’
Шпаргалка: извлечь текст из поля bytea (binary) в PostgreSQL
Как обновить ветку в Git без переключения на неё
Предположим, вы работаете в ветке feature, а коллеги обновили master. Вам нужно подтянуть свежие изменения в локальный master, но не хочется терять контекст и переключаться туда-обратно. Стандартный git pull работает только с текущей веткой. Что делать?
Как обновить базовую ветку фичи: кейс с rebase
В командной разработке на Git регулярно возникает ситуация: вы работаете над фичей в ветке feature/xxx, ответвившись от master. Пока вы пишете код, коллеги успевают задеплоить в master несколько других фич, которые не пересекаются с вашей, но вносят изменения в общий код (например, исправляют баги, добавляют утилиты, меняют конфигурацию). Ваша задача — обновить свою ветку так, чтобы она включила эти “чужие” изменения, но при этом не тащила в историю лишние merge-коммиты и не смешивала логику. Идеальное решение — git pull origin master --rebase. Разберём этот кейс подробно.
CSS-префиксер для изоляции стилей: добавляем класс-обёртку ко всем правилам
При разработке крупных проектов или интеграции готовых UI-библиотек часто возникает проблема конфликта имён CSS-классов. Стили одной библиотеки могут неожиданно повлиять на элементы другой, даже если вы старались использовать уникальные имена. Обычно эту проблему решают через CSS Modules или Scoped CSS.
Читать далее »C5BB 1.0.11 обновления
Вышло небольшое, но полезное обновление модуля c5bb. Продолжаю заниматься поддержкой этого проекта.
Читать далее »Изменяем историю коммитов в GIT
Рассмотрим две наиболее частые операции — изменение названия коммита и слияние нескольких коммитов в один.
Читать далее »Хак с Form API в Drupal 7: создаём HTML5‑поля (number, email, tel) без лишних модулей
Drupal 7 предлагает мощный Form API для построения форм. Однако при работе с HTML5‑атрибутами можно столкнуться с неожиданным ограничением: если вы попытаетесь задать тип поля number, email или tel стандартным способом, Drupal проигнорирует ваше значение и оставит тип text (или тот, который определён через #type).
Создание системы хлебных крошек в WordPress
Есть готовые решения, плагины, которые могут решать ваши задачи в области генерации хлебных крошек. Они отлично подойдут для готовых к использованию тем оформления. Здесь я их не рассматриваю.
В статье я покажу пару «собственных» подходов к генерации крошек, и это может стать основной для вашего решения.
Читать далее »Защита зараженного сайта: автоматическая сборка черного списка IP-адресов из логов Nginx
Представьте ситуацию: ваш сайт подвергся атаке. В корне и других папках появились подозрительные PHP-файлы, которых там быть не должно. Вы их удаляете, но через некоторое время они возникают снова. Очевидно, злоумышленники нашли и используют неизвестную вам уязвимость (дыру) — возможно, в одном из плагинов CMS или стороннем компоненте.
Читать далее »Ошибка формирования чека в best2pay для WooCommerce при использовании купонов — разбор и решение
В одном из проектов столкнулся с проблемой формирования фискального чека в модуле оплаты best2pay для WooCommerce. Ошибка проявлялась не всегда, а только при использовании промокодов и нескольких товаров в корзине. Формально платеж проходил, но строки в чеке формировались некорректно: вместо скидки появлялась строка с «авансовым платежом».
Читать далее »