Записки Вредного программиста

enjoy, motherfuckers ;)

Полнотекстовый поиск по телефонным номерам разного формата (PostgreSQL)

В одном из последних своих проектов, где использовалась большая база контактов, у каждого контакта имелось несколько телефонов, понадобилось искать по номеру телефона. Недолго думая решил сделать это через встроенный ILIKE, но поиск почти ничего не находил, потому что в таблице с номерами телефонов хранились номера в совершенном разных форматов, например, +7(903)555-12-11, +46 8 52506000 и т.д. Поэтому нужно было придумать что-то более радикальное и в то же время не очень медленное.

Ruby OpenURI::open и ProgressBar

Рыская по документации к методу open из набора OpenURI (мне нужно было установить большее значение timeout’а). Пролистав нужное место в документации натолкнулся на интересные параметры, с которыми можно вызывать метод open.

Написание первого плагина для Vim

Я использую Vim уже больше года и только сейчас возникла необходимость написать свое первое для него расширение. Расширение будет преобразовывать старые хеши из версии 1.8 языка Ruby в новые, появившиеся в версии 1.9, т.е. нечто вида :a => ‘b’ превратится в нечто более читаемое и компактное a: ‘b’.

Ротация логов на примере логов Unicorn

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