вторник, 9 августа 2011 г.

Еще раз о наследовании в Python


Решил освежить в голове синтаксис команды super в Python. Накидал вот такой простенький пример:
class A ():
    def __init__ (self):
print 'Yeah'


class B (A):
    def __init__ (self):
super (B, self).__init__()


b = B()

При запуске выдавалась ошибка:

snegovik@snegovik-K43E:~$ python test_super.py 
Yeah
Traceback (most recent call last):
  File "test_super.py", line 16, in <module>
    b = B()
  File "test_super.py", line 10, in __init__
    super (B, self).__init__()
TypeError: must be type, not classobj


Решением оказалось добавление наследования класса A от object, т.е.

class A (object):
    def __init__ (self):
        #...

среда, 29 июня 2011 г.

Vim и цветовая схема

Порой сталкивался с ситуацией, когда vim не отображает цветовую схему, которая указана в .vimrc

Решение простое - в .bashrc добавить строчку:

export TERM=xterm-256color

Перезапускаем терминал и все работает!

пятница, 24 июня 2011 г.

ETS Enable metaclass conflict error resolve

I have trouble launching Enable from ETS package. My comrades running the same package of ETS succesfully. They have x86_64 Ubuntu, but I have x86 version.
After a lot of time I've found solution:


So, if you have trouble launching Enable such as:

from enthought.enable.api import Window
  File "/usr/local/lib/python2.7/dist-packages/etsproxy-0.1.0-py2.7.egg/enthought/enable/api.py", line 2, in <module>
    from enable.api import *
  File "/usr/local/lib/python2.7/dist-packages/Enable-3.4.2-py2.7-linux-i686.egg/enable/api.py", line 42, in <module>
    from graphics_context import GraphicsContextEnable, ImageGraphicsContextEnable
  File "/usr/local/lib/python2.7/dist-packages/Enable-3.4.2-py2.7-linux-i686.egg/enable/graphics_context.py", line 85, in <module>
    class GraphicsContextEnable(EnableGCMixin, GraphicsContext):
TypeError: Error when calling the metaclass bases
    metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases


You need to create site.cfg file in enable directory with this contents:
[x11]
library_dirs=/usr/lib:/usr/lib/X11:/usr/lib/i386-linux-gnu
include_dirs=/usr/include/X11:/usr/include:/usr/lib/i386-linux-gnu

Then, run python setup.py build and python setup.py install

If that doesn't help, use the following:

LD_PRELOAD=/usr/lib/i386-linux-gnu/libX11.so python myawesomefile.py


четверг, 26 мая 2011 г.

Проверка существования таблицы в sqlite3

Приведу кусочек кода на Python:
sqlite_conn = sqlite3.connect('plugins/db.sqlite')
c = sqlite_conn.cursor()
c.execute('''
             SELECT * FROM sqlite_master where name='имя_таблицы'
          ''')
table_exists = False
for i in c:
     if i:
         table_exists = True
 



понедельник, 4 апреля 2011 г.

Книги, которые прочитал за последний год

За авторством Бориса Акунина (всегда нравится то, как и что он пишет):

  • "Ф.М."
  • "Азазель"
  • "Левиафан"
  • "Смерть Ахиллеса"
  • "Пиковый валет"
  • "Любовница смерти"
За авторством Габриэля Маркеса:
  • "Сто лет одиночества" - Оказалась самой скучной книгой, которую еле дотерпел до конца прочитать. Очень много сошедших с ума людей, инцеста и имен Аурелиано и Аркадио.
За авторством Мартина Фаулера:
  • "Рефакторинг. Улучшение существующего кода" - Ну это по делу =)
За авторством Януша Вишневского:
  • "Зачем нужны мужчины" - Есть пара хороших интересных фактов.
  • "Мартина" - После этой книги больше не буду читать Вишневского.
За авторством Бернара Вербера:
  • "Дыхание богов" - The best book I have read!
За авторством Дмитрия Глуховского:
  • "Рассказы о Родине" - Очень хорошая книга.
За авторством Лиз Бурбо:
  • "Пять травм, которые мешают быть самим собой" - Еще одна замечательная книга, помогает ежедневно.
За авторством Сергея Лукьяненко:
  • "Ночной дозор" - Вода, вода, кругом вода.


Начинал читать и не закончил:
  • Коносуке Мацусита - "Миссия бизнеса"
  • Томас Рид - "Всадник без головы"
  • Альфред в. Ахо - "Структуры данных и алгоритмы"

Топик по Mayavi

Уже давненько выкладывал на Хабре:

Рисуем цветной кубик в Mayavi
http://habrahabr.ru/blogs/python/115170/

воскресенье, 2 января 2011 г.

С Новым 2011 годом

Пусть в Новом году исполняются все желания, в коде было поменьше багов, рефакторинг доставлял удовольствие, а готовые продукты - хороший заработок!

Configuring Jenkins for C# projects

Steps in my build configuration Restore nuget packages chcp 1251 .nuget\nuget.exe restore Swag.sln Build solution chcp 1251 cmd.e...