2011/10/20

Matplotlib - анимация в реальных условиях

На сайте проекта - http://matplotlib.sourceforge.net/examples/index.html - даны базовые примеры анимации с графиками, которые, как обычно бывает, плохо работают в боевых условиях. Например, у меня имеется прога на GTK, с отдельным потоком, где производятся все вычисления для графиков. По-хорошему, там же и надо вызывать функцию перерисовки, но не тут-то было!

Иксы выкатывают мне неведомую ошибку:
The program 'panel.py' received an X Window System error. This probably reflects a bug in the program. The error was 'BadDrawable (invalid Pixmap or Window parameter)'. (Details: serial 6974 error_code 9 request_code 62 minor_code 0) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.)
Я так и не понял почему такое может происходить, поэтому начал искать другой способ запуска функции через определенный промежуток времени. В этом мне помог такой кодес:
import gobject
gobject.timeout_add(1000, self.animate)
 Такой замес тупо вызывает функцию animate каждую секунду. Все довольны!

2011/10/07

Подключение некоторых Android 2.3 based устройств к Linux

Не знаю уж почему так делают, но на некоторых прошивках Android 2.3 при подключении к компу устройство по умолчанию распознается как модем, а не как флешка, что сопровождается подобными деферамбами dmesg:
[81405.955234] usb 2-2: new high speed USB device number 7 using ehci_hcd
[81406.098927] cdc_acm 2-2:1.0: This device cannot do calls on its own. It is not a modem.
[81406.099041] cdc_acm 2-2:1.0: ttyACM0: USB ACM device
На этом всё, то есть как флешка оно не определяется. Итак, чтобы исправить это, заходим в телефон и набираем номер *#7284#, выскочит некая PhoneUtil, где и надо выбрать в обоих случаях пункт PDA. Вот и всё, теперь андроид монтируется как в старые добрые времена.