В одном из последних своих проектов, где использовалась большая база контактов, у каждого контакта имелось несколько телефонов, понадобилось искать по номеру телефона. Недолго думая решил сделать это через встроенный 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’а.