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

Понадобилось посчитать количество слов в поле. Т.е. задача свелась к подсчёту количества пробелов в этом поле. Мускульный регексп уныл и не справляется. Выход — посчитать длину исходной строки и вычесть длину строки с убранными искомыми символами.

SELECT LENGTH(field) - LENGTH(REPLACE(field, ' ', '')) cnt FROM table_name;

Однако тут подводная грабля есть. Если поле с текстом в мульти-байтной кодировке, то следует использовать CHAR_LENGTH() вместо LENGTH(). При этом REPLACE() — мульти-байтно безопасная и регистро зависимая.

PHP CLI debug в Vagrant из PHPStorm

Понадобилась мне отладка консольных скриптов в витуальной машине (далее ВМ) Vargant`а. Самый лёгкий путь — подражание, потому сразу же пошёл гуглить.Нашёл статью, и… она меня взбесила. Это длиннющая простыня соплей, как заставить прикрутить Vagrant к PHPStorm`у, засетапить целую колоду окошек для непонятно чего. Сколько усилий нужно для этого приложить, сколько кликов мышкой сделать. Вспомнил как я поднимал отладку на удалённом дев-сервере, и решил поступить так же по-джедайски. Далее короткая хаутушка по настройке отладки CLI PHP  скриптов в Vagrant`е из PHPStom`а. Читать далее PHP CLI debug в Vagrant из PHPStorm

Средне арифметическое двух default null

Задача.

Посчитать средне арифметическое значение двух полей в кортеже, при том, что любое из них может быть null. Проблема в том, что если одно из них null, то делить на 2 уже не нужно. Средне арифметическое должно быть равно второму значению. И наоборот. При этом не хочется городить if-else`ов, и нельзя никак использовать avg(), потому, что она агрегатная.

Решение. Читать далее Средне арифметическое двух default null

Depositphotos API client. Примеры.

Часто лучше один раз увидеть (пример использования API), чем 10 раз услышать (прочитать документацию Depositphotos API). Потому придумал разместить свою наработку для тестирования Depositphotos API client на гитхабе. Читать далее Depositphotos API client. Примеры.

Xdebug на удалённом сервере

Некоторое время назад захотелось мне дебажить PHP код с помощью Xdebug`а. Чтоб не просто сухими принт-эр-дайами, эхами и вардампами код захламлять, а по-взрослому, как говориться, с дебаггером на перевес бросаться в любой бой, смело жать step into, step over, step out, run to cursor и наблюдать значения всех переменных в скоупе сразу. Тем более, что в используемой мною IDE Netbeans функционал отладки встроен, и Xdebug поддерживается. Ну и собрался я однажды осилить эту задачу. Читать далее Xdebug на удалённом сервере

PHP frameworks day 2013


Побывал на конференции PHP frameworks day. Впечатления очень двоякие. С одной стороны — почти международная конференция, а с другой — слушать было приятно только пару-тройку докладчиков. Остальные сыпали мусорными словами и, казалось, что не на 100% знают о чём говорят.

Читать далее PHP frameworks day 2013

Про работу, собеседования и HR`ов

Сменил ещё одно место работы. Пришёл в новую фирму, о которой тоже можно сказать шаблонное «молодой, дружный коллектив, развивающийся хай лоад стартап» и прочие кучерявые эпитеты. Прошёл триальный период, колупаюсь в движке, гребусь в статистике, думы думаю…
Думы не весёлые, довольно мрачные. Читать далее Про работу, собеседования и HR`ов

Апгрейд

Долго хотел приобрести NAS. Читал, выбирал, раскатал губу на NAS`ы с HTTP, FTP, SMB и DLNA серверами, уведомлениями по e-mail и SMS, гигабитным Ethrnet, eSATA и парой USB, SNMP, RAID и прочими азартными играми и дамами лёгкого поведения. При этом он, конечно же, должен быть максимально беззвучным и вмещать как минимум 2 терабайтных накопителя. Это так, чтоб в ближайшие 3-5 лет не задумываться об апгрейде. Но оказалось, что такие железяки стоят каких то совершенно не адекватных денег. А Потом заметил, что большая часть всего перечисленного уже работает на моём домашнем сервере, который, к тому-же, очень тихий и работает 24/7. Так нафига мне ещё одна коробка, занятая сетевая розетка и занятый ethernet порт в роутере? Читать далее Апгрейд

Настройка proxy в android 4

Довольно долго искал на планшете как же сказать андроиду ходить в интернеты через прокси. Всё попадались какие то страшные костыли. А простое, стандартное решение нагуглил только на хабре, когда один чувак сказал «ты пальчик подержи на соединении». Я упал с дивана от такого «андроидхака». Читать далее Настройка proxy в android 4

Scrum и XP: заметки с передовой. Конспект. Часть 1.

Очень понравилась «Scrum и XP: заметки с передовой» Хенрика Книберга в переводе Agile Ukraine. В ней Хенрик делится личным опытом ScrumMaster`ства в софтверных конторах. Никакой «воды», никаких лирических отступлений, только факты как работали они, как ещё можно работать, и как работать не нужно. Повествование от первого лица и встречающийся иногда юмор делают эту книгу интересным и лёгким чтивом.

Далее небольшой конспект перевода книги. Анонс перевода есть на Хабрахабре. Русский перевод книги можно взять на scrum.org.ua, а оригинал на infoq.com. Читать далее Scrum и XP: заметки с передовой. Конспект. Часть 1.