Wednesday, December 21, 2011

python-mode, памятка

cedet из cvs теперь принудительно дергает python.el (он у меня в /usr/share/emacs/23.1/lisp/progmodes), который конфликтует с python-mode.el, который мне нравится больше. Лечится правкой cedet/semantic/wisent/wisent-python.el Находится строчка (require 'python nil t) и комментируется. При желании перекомпилируется.
Нормальная работа восстановлена и глюков пока не замечено.

Friday, November 25, 2011

Почему лучше не связываться с wxPython

Если вы начинаете проект на Python и в качестве GUI думаете использовать wxPython, то я не советую вам это делать по причинам переносимости. Ниже мой комментарий в теме, где такая проблема всплыла.

Тема wxPython на Linux вылазит, как правило в начале работы, когда вовсю вылазят косяки сборки wxPython. В свое время мы отказались от wx по двум причинам:
  • у wx (по крайней мере с wxPython) была проблема с обратной совместимостью на неосновных версиях.
  • wx, под Linux, дергает GTK. Но, работая с GTK напрямую еще есть шансы на то, что на другой конфигураци*  версия библиотеки будет совместима с той, которая используется для разработки. С wх, и в особенности с wxPython, такие шансы невысоки и вот почему. wxPython представляет собой связку четырех сущностей упомянутые выше GTK и wx, плюс wxPython и Python. Пакеты с GTK, wx, wxPython и Python собирают разные люди. Насколько они договорятся между собой о используемых версиях (UPD: и насколько большое рукожопие проявят в процессе сборки) -  большой вопрос. 
Если вы только начинаете проект я бы рекомендовал использовать более популярные альтернативы: pyQT или pyGTK**. Они вовсю используются в дистрибутивах, потому вероятность поиметь проблем с кривыми сборками и переносимостью на порядок меньше. Перед этим, для GUI, я использовал связку TkInter+Tile. Теперь, я предпочитаю вариант Java+Jython.

* - например, апгрейд дистрибутива или его смена
** - pyQT, пожалуй, самое лучшее. Но для коммерческих проектов надо лицензироваться, причем - недешево. Вместо него можно попробовать PySide, если он присутствует в вашем дистрибутиве. Вариант с GTK тоже имеет свои нюансы. Не так давно вышла GTK3. Я не знаю, совместимы ли GTK2 и GTK3, есть ли биндинг к GTK3, насколько он совместим с GTK2 и насколько вообще стабильна эта связка.

Thursday, October 13, 2011

Хозяйке на заметку. Выдрать кусок видео

 mencoder your_movie.flv -ss START_TIME -endpos LENGTH_IN_SECONDS -ovc xvid -xvidencopts chroma_opt:vhq=2:bvhq=1:quant_type=mpeg:b
itrate=2000 -oac mp3lame -lameopts cbr:br=192 -o your_movie.flv

Схожий рецепт, но выдрать только  звук.

Thursday, March 10, 2011

Время от времени я играюсь бенчмарком, где надо посчитать числа Фибоначчи несколько странным образом - с генерацией кучи объектов.
Так вот, python Фибоначчи сливает по производительности свежему jython-у (2.5.2), который оказался немного шустрее, чем 2.5.1:
root@asm3:/home/miha/tmp# jython fib.py
Thu Mar 10 13:00:32 2011
102334155
Thu Mar 10 13:04:02 2011
root@asm3:/home/miha/tmp# jython fib.py
Thu Mar 10 13:12:34 2011
102334155
Thu Mar 10 13:15:53 2011
root@asm3:/home/miha/tmp# jython fib.py
Thu Mar 10 13:16:57 2011
102334155
Thu Mar 10 13:20:17 2011
root@asm3:/home/miha/tmp# jython fib.py
Thu Mar 10 13:21:15 2011
102334155
Thu Mar 10 13:24:42 2011

а вот python-вариант:
root@asm3:/home/miha/tmp# python fib.py
Thu Mar 10 13:45:48 2011
102334155
Thu Mar 10 13:51:06 2011

root@asm3:/home/miha/tmp# python fib.py
Thu Mar 10 13:52:54 2011
102334155
Thu Mar 10 13:58:24 2011

Да, я знаю, что psyco может существенно ускорить, но он все-таки костыль.
Кроме того я знаю, что под рутом сидеть моветон, но тесты гонялись сразу после установки.
Текст теста под катом.

Thursday, January 20, 2011

На чем учиться программированию?

Статья из моего блога в livejournal.

Недавно меня спросили о книгах по программированию для ребят в возрасте 13-14 лет. Надо сказать, что это вопрос весьма спорный: сколько программистов, столько и мнений. Но я в этой заметке старался учесть опыт лучших университетов мира и довольно скромный — свой.