Столкнулся с совершенно анекдотичной ситуацией – после замены материнской платы беспроводная мышь Logitech (с nano-адаптером) отказалась работать корректно и стала прикидываться PS/2-мышью. Курсор ездил по экрану как пьяный, и не работал скроллинг колёсиком. Я потратил несколько часов на поиск решения. Continue reading “USB-мышь определяется как PS/2 или не работает”
Спортивные часы Polar A300 HR
Взял вот такой девайс. Работаю с ним уже полтора месяца, доволен как слон.
Почему из новомодных систем управления проектами получается х..
Таск-менеджер – это не багтрекер, или Почему из новомодных систем управления проектами получается херня.
Каждый раз, когда я вижу очередной пост о том, что “Мы изобрели очередную канбан-доску”, у меня начинают чесаться кулаки и возникает подспудное желание придать автору ускорение в сторону ближайшей стены, – потому что я знаю, что пост закончится тем что “…а теперь мы попробуем научить в ней работать хоть кого-нибудь из других отделов кроме программистов”.
И получается херня. Потому что таск-менеджер – это не багтрекер. Continue reading “Почему из новомодных систем управления проектами получается х..”
Ограничиваем доступ к S3 средствами Rails-приложения
Добавить хранение файлов в облаке Amazon S3 в приложение на Rails очень просто: устанавливаем гемы paperclip и aws-sdk, и готово. Но что если мы хотим скрыть прямые ссылки на хранилище S3, и даже разграничивать доступ к конкретным файлам в зависимости от роли пользователя? Вот рабочий пример: Continue reading “Ограничиваем доступ к S3 средствами Rails-приложения”
Паттерн voter injection: взаимодействие без хардкода
В моей практике часто возникают ситуации, когда в программе один объект должен определённым образом реагировать на другие объекты. То есть – решать, взаимодействовать с ними или игнорировать. Например, когда объект принимает сообщения от других объектов, и должен решать – отреагировать на конкретное сообщение или пропустить его. Понятно, что в простейшем случае достаточно это захардкодить: допустим, объект user реагирует на все сообщения про этого юзера. Но что делать, если ситуация сложнее, и реакции должны быть динамическими? (например, если ваши объекты порождаются фабрикой). Для этого у меня есть некий паттерн, который я называю voter injection. Continue reading “Паттерн voter injection: взаимодействие без хардкода”