Хотел послушать буддистский метал, а его нет

Symfony: фильтр связанных полей в формах

Symfony: опция query_builder для форм

Задача: вывести в форме только те связанные объекты OneToOne/OneToMany, которые ещё не были связаны с сущностями данного типа.
Например: при создании нового счёта вывести только те заказы, которые ещё не прикреплены ни к каким счетам (связь один-к-одному: счёт может относиться только к одному заказу). А при редактировании счета выводить все незанятые заказы, плюс тот, к которому счёт уже прикреплён.

Я взял код из рабочего проекта, немного упростил его и переименовал сущности. Подробнее (и понятнее) ниже.

Подробнее →

PHPUnit + Symfony: ошибка Resetting the container is not allowed when a scope is active

Возникает в функциональных тестах PHPUnit с использованием клиента, открывающего указанные URL-адреса.

1) MyBundle\Tests\Controller\ControllerTest::testRoute
Symfony\Component\DependencyInjection\Exception\LogicException: Resetting the container is not allowed when a scope is active.

Подробнее →

Удобная IDE для PHP и Symfony

Пересел с NetBeans на PhpStorm — как будто открыл фотошоп после пеинта. До этого я больше пяти лет работал в NetBeans, а ещё раньше на Eclipse и вообще на целом зоопарке разных редакторов для веб-разработки.

Удобство во всём: быстро работает, великолепное автодополнение: есть плагины для Symfony, WordPress и для всех современных фреймворков. Куча полезных инструментов, вроде простого рефакторинга кода и автогенерации геттеров/сеттеров/конструкторов, тестов PhpUnit, сервисов-контроллеров Symfony и так далее.

Подробнее →

Терминал и его команды

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

Процессы

Убить все процессы с заданным именем

Когда не доверяешь pkill.

Узнать родителей процесса

Узнать родителей всех порождённых процессов

Во всех командах параметр -f для cut может требовать подбора верного числа.

Вывести процессы, сортированные по потребляемой памяти

Подробнее →

Как я учил теорию музыки на coursera.org

Мои впечатления от онлайн-курса «Fundamentals of Music Theory» (Элементарная Теория Музыки) от Эдинбургского университета, который я прошёл на ресурсе Coursera.org.
Курс я проходил бесплатно, но можно заплатить $49 и получить сертификат.

Подробнее →

Бэкап на Google Диск из командной строки

Для работы со своим гуглдиском из командной строки потребуется установить пакет gdrive. Установка проста и описана на странице проекта, там же примеры работы с утилитой.

Далее полезные команды и скрипт для бэкапа.

Подробнее →

Отладка отправки почты на локальном сервере

Для того, чтобы перехватывать почтовую рассылку с локального веб-сервера, понадобится установить пакет mailcatcher.
MailCatcher — это простой SMTP-сервер, который отображает отправленные на него письма в веб-интерфейсе.

Я настраиваю веб-сервер для PHP, на официальном сайте описана настройка и под другие платформы.

Подробнее →

Python: вставить строку в буфер обмена (Linux)

Данный код копирует строку «Cthulhu fhtagn!» в буфер обмена — это значит, что после запуска скрипта данная строка будет доступна для вставки в любом текстовом поле.

Код будет работать только в рабочих окружениях, которые используют GTK+ (GNOME, Xfce etc.).

Подробнее →

Python: загрузка альбомов ВКонтакте

Кратко: описание способа массовой загрузки аудиозаписей из Вконтакте, с сортировкой по альбомам.

Good news, everyone. Вконтакте закрыл свободный доступ к API аудиозаписей, и теперь скрипт не работает.

История

Я слушаю музыку онлайн, для чего использую Вконтакте как музыкальный каталог, в котором можно сохранять и сортировать аудиотреки по альбомам. С помощью специальных плагинов для браузера (использую VK Audiopad), для этого даже не нужно заходить на сайт. Удобно.

Со временем, у меня накопилось больше 65-ти альбомов, в которых находятся свыше 4000 записей.

Подробнее →

Linux: конвертировать файлы в PDF

Конвертировать документы MS Office в PDF

Утилита unoconv работает с большим количеством других форматов (xls, doc, odt, pot, ppt, полный список на официальном сайте) и доступна в популярных репозиториях.

Объединить pdf-файлы

Последний аргумент для команды (merged.pdf) является названием итогового файла, а входных аргументов может быть любое количество. Утилита pdfunite входит в пакет программ poppler-utils, и также доступна в популярных репозиториях.