четверг, 11 апреля 2013 г.

iPython не грузится, не растёт кокос

Под влиянием замечательного поста решил попробовать автоматизировать часть рутинных задач при помощи python и его продвинутой оболочки iPython. Учитывая, что с Python’ом я до этого дел никаких не имел, для упрощения старта решил воспользоваться «всё-в-одном» паком под Windows Python(x,y).

Пак встал без проблем – без каких либо сообщений об ошибках или предупреждений. Однако попытка запуска ipython notebook сопровождалась вот такой гроздью сообщений об ошибках и чем-то странным в браузере:

ERROR:root:Uncaught exception GET /static/jquery/css/themes/base/jquery-ui.min.css?v=d1a93 (127.0.0.1)
HTTPRequest(protocol='http', host='127.0.0.1:8888', method='GET', uri='/static/jquery/css/themes/base/jquery-ui.min.css?v=d1a93', version='HTTP/1.1', remote_ip='127.0.0.1', body='', headers={'Accept-Language': 'ru-RU', 'Accept-Encoding': 'gzip, deflate', 'Host': '127.0.0.1:8888', 'Accept': '*/*', 'User-Agent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)', 'Dnt': '1', 'Connection': 'Keep-Alive', 'Referer': 'http://127.0.0.1:8888/'})
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\tornado\web.py", line 1042, in _execute
    getattr(self, self.request.method.lower())(*args, **kwargs)
  File "C:\Python27\lib\site-packages\tornado\web.py", line 1568, in get
    mime_type, encoding = mimetypes.guess_type(abspath)
  File "C:\Python27\lib\mimetypes.py", line 294, in guess_type
    init()
  File "C:\Python27\lib\mimetypes.py", line 355, in init
    db.read_windows_registry()
  File "C:\Python27\lib\mimetypes.py", line 259, in read_windows_registry
    for ctype in enum_types(mimedb):
  File "C:\Python27\lib\mimetypes.py", line 249, in enum_types
    ctype = ctype.encode(default_encoding) # omit in 3.x!
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)

...




Как оказалось, к самому iPython эти ошибки не имеют никакого отношения. Проблема возникает при загрузке web-сервера Tornado - при попытке получить из реестра mime-типы. В ветке реестра  [HKEY_CLASSES_ROOT\CLSID{4063BE15-3B08-470D-A0D5-B37161CFFD69}\EnableFullPage\MIME]  почему-то оказались mime-записи, содержащие кириллицу.

Лечение было проведено методом «на авось» - элементы типа «видео/mpeg» были переименованы в «video/mpeg», а то, что переименовать не удалось, было просто удалено. После этого iPyton прекрасно запустился. Понятно, что какие вылезут в результате такого лечения косяки – не понятно. Пока, правда, всё прекрасно обходится без них :)

пятница, 5 апреля 2013 г.

Чтобы Backspace в Explorer стал "вверх"

Продолжаю обостраивать систему под себя. Цель: заставить Explorer переходить по клавише Backspace на один уровень иерархии вверх.

Когда-то именно так и было, но в Win7 (говорят, что это началось ещё в Vista, но с ней мне не довелось работать) в Explorer значение клавиши Backspace кардинально поменялось - она стала отправлять вас в "предыдущее место находжения", а не в родительский каталог. Это, то ли в силу мой привычки, то ли приёмов работы, меня стало откровенно раздражать. Довольно долгое гугление позволило обнаружить ответ. Собственно, там два ответа, но уменя без проблем запустился толь один - скачать и поместить в автозагрузку
Download HTGBack XP-Style Backspace Key

После этого привычный Backspace в Explorer наконец-то начинает вести себя привычным способом. К сожалению, при большом аптайме и после интенсивного использования виртуальной машины, Explorer перестаёт реагировать  на нажатие этой магической клавиши. Правда, кто тут виноват (виртуалка vs программа), установить вряд ли удастся да и не нужно - раз в месяц можно и перезагрузить, благо, по-настоящему долгих задач нет.