Блог хеллоуворлдщика

Переехал на DigitalOcean. Кто хочет $50?

Вчера переехал на DigitalOcean с FastVPS, потому что FastVPS хочет ~$5 за 5Gb пространства, тогда как DigitalOcean за те же деньги дает 20Gb. Выгодно? Выгодно.

И у них есть приятный бонус: если вы воспользуетесь моей реферальной ссылкой, то получите $50! Круто, да? Я, правда, получу $25. =( Знал бы я раньше, то зарегался бы по чье-нибудь ссылке, а не в холостую. Эх... Но хоть вы не упустите возможность!

Реферальная ссылка: https://m.do.co/c/65800f5e0c56

Читать далее

Библиотека для работы с Nested Set в Doctrine ORM

Опубликовал библиотеку, которая помогает работать с Nested Set Tree. Пока что не реализован весь функционал, но можно уже пользоваться тем, что есть. Постепенно буду его добавлять и улучшать.

Ссылка на репозиторий: https://github.com/bupy7/doctrine-nested-set

Читать далее

Многоязычность или мультиязычность в PHP

Многие сталкиваются с такой проблемой, как поиск подходящего решения в решение вопроса с мультиязычностью и переводами в целом. Мало кто знает, но в PHP есть такое расширение Intl, которое из коробки поддерживает различные фичи связанные с переводами, форматированием и прочими плюхами полезными не только для мультиязычных проектов, но и одноязычных тоже. Все это называется - интернационализация. И сегодня я хочу осветить такой вовсе не странный и весьма простой вопрос с переводами. Дак, как же все-таки сделать это просто, быстро и безболезненно? Читайте дальше! =)

Читать далее

Новая версия модуля для работы с часовым поясом

Вышло обновление для zf-time-zone. Теперь модуль также работает и на Zend Expressive! Для тех, кто использовал модуль только для Zend Framework 3 - обратная совместимость сохранена.

Ссылка на расширение: https://github.com/bupy7/zf-time-zone

Читать далее

Пакетные миграции в Yii2

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

Читать далее

SELECT COUNT(*) FROM (sub_query) в Doctrine 2

Не мог не заметить, какое количество вопросов по этому поводу, т.к. сам когда-то искал на это ответ. Проблема в том, что хорошего ответа нет.

Если у вас сложный запрос и вам нужно получить по нему COUNT(*), то в сети можно найти вариант вида:

$subQuery = $qb->select('main.id')
    ->from('Order\Entity\Order', 'main')
    ->where('main.published = :published')
    ->setParameters([
        'published' => true,
    ]);
 
$qb->select('COUNT(o)')
    ->from('Order\Entity\Order', 'o')
    ->where($qb->expr()->in('o.id', $subQuery->getDQL()))
    ->setParameters($subQuery->getParameters());

Но такой запрос очень медленный. Он подойдет для незначительного объема данных.

Читать далее

Все ненавидят Zend Framework

17 октября 2018 в своем личном блоге Мэтью О'Финни сделал пост Будущее Zend Framework в котором, к сожалению, это самое будущее не совсем светлое.

Если коротко, то основные разработчики Zend Framework оставляют компанию, в которой данный продукт разрабатывался, т.к. компания решила направить свои силы в другое русло, а именно в Zend Server.

Что будет с Zend Framework даже непонятно, хотя, обещают не бросать. Будем надеяться и верить.

Читать далее

Создаем личный рукописный шрифт

Создаем личный рукописный шрифт

Когда я учился в ВУЗе, то не все там могло радовать рядового студента. Особенно, если студент не очень-то и хотел ходить на скучные и утомительные лекции. Но, план есть план и, как часто оно бывало, на студента накладывали штрафные санкции и обязывали сдать в короткий срок все лекции в письменной виде. И преподавателя глубоко не волновало, что это бесполезная трата времени, и что я мог бы за один вечер изучить пройденный материал за весь семестр и сдать сранный зачет/экзамен. Но, видать, я учился на каллиграфиста, а не на того самого, на кого я учился на самом деле. ;)

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

Читать далее

Приложение для скачивания музыки из ВК. vol 4

Приложение для скачивания музыки из ВК. vol 4

Сегодня ночью релизнул первую версию приложения для скачивания музыки из Вконтакте. Написал, как и бота, на Java, но еще и с использованием JavaFX, т.к. на этот раз, это - десктопное приложение, которое запустится на любой OS: Windows, Linux или MacOS. К сожалению, пока нет ни .deb, ни .dmg, ни .exe для нормальной работы с программой. =( JRE все еще нужно ставить самому. Но, в ближайшем будущем я все упакую.

Пока полностью точно работает на MacOS, как там с остальными - не знаю. Как минимум, на Windows версия 1.0.0 работать не будет, потому что я по привычке использовал разделитель пути Unix'овый, а надо было системный, что я и исправил, но пока не зарелизил.

VK Music Downloader
Читать далее

Как скачать музыку из группы или профиля ВК. Vol 3

И вот очередная версия полезного бота для Telegram позволяющего скачать музыку с VK прямо в группу или в самого бота!

На этот раз обновления замечательные. Теперь можно:

  • скачивать музыку как со стен групп, так и со стен пользователей;
  • скачивать музыку как из аудиозаписей пользователей, так и из аудиозаписей групп;
  • авторизация в ВК через Telegram.

Наверно, авторизация в ВК через Telegram, это - самая замечательная фича, которая доступна в версии 1.1.0! Теперь не нужно ковыряться к каком-то браузере, искать какой-то remixsid, что-то копировать, а просто ввести номер телефона и пароль.

Ссылка на новую версию: https://github.com/bupy7/java-vk-music-transfer/releases/tag/1.1.0

Инструкция для не пограммистов к новой версии будет немного позже. Следите за обновлением данной статьи. ;)

Читать далее