28 мая 2011 г.

Тестирование вызовов команд операционной системы в Руби


 Как и большинство скриптовых языков пришедших из Unix систем, Ruby имеет развитые средства для вызовов команд оболочки операционной системы. Такой функционал позволяет писать программы "обертки", которые выполняют работу с помощью уже имеющихся CLI средств в ОС. 

14 мая 2011 г.

Баг в opencv под GTK

При работе с opencv под Ubuntu обнаружил странное поведение метода cv.WaitKey. Он возвращал не ASCII код нажатых клавиш. Например код:
key = cv.WaitKey(5)
print key 
при нажатой клавиши 'q' вернул мне код 1048689 вместо 113.Дело в том что в GTK используется 16 разрядов для помещения в старший байт дополнительной информации, более подробно об этом тут. Что бы корректно все работало, нужно маскировать первый байт. Пример правильного получения нажатого символа:
key = chr(cv.WaitKey(5) & 0xff)
Функция chr(i) преобразования кода ASCII в символ.
Вот и все :)

6 мая 2011 г.

Альтруизм и эгоизм в пробирке

Нашел очень интересную лекцию об альтруизме и эгоизме в живой природе Александра Маркова. Ниже вырезка из лекции о поведении бактерий, очень напоминает человеческое общество... Полностью лекция на Полит.ру