Метки
amd bittorrent bug centos debian enlightenment fedora fedora 8 fedora 9 fedora 10 fedora 11 fedora 12 fedora 13 fedora 15 fedora 16 FedoraMD fglrx firefox flash player gnome google intel interview java kde kernel linux livecd migrate moldova nvidia openoffice OpenStreetMap opera Orange ovirt radeon red hat rpmfusion Sandel skype video virtualisation vmware wine
BitTorrent Tracker
2008-02-07 23:01 | Автор: Oleg | Filed under: Oleg
Сегодня проводил подготовку к запуску на нашем серваке Битторрент трекер. За базу взял стандартный bittorrent, написанный на python.Все отлично заработало из коробки. Но когда я включил опцию --allowed_dir в логах увидел ошибку:
Traceback (most recent call last): File "/usr/lib/python2.5/site-packages/BitTorrent/RawServer.py", line 467, in _make_wrapped_call function(*args) File "/usr/lib/python2.5/site-packages/BitTorrent/track.py", line 796, in save_dfile h.write(bencode(self.state)) File "/usr/lib/python2.5/site-packages/BitTorrent/bencode.py", line 135, in bencode encode_func[type(x)](x, r) File "/usr/lib/python2.5/site-packages/BitTorrent/bencode.py", line 115, in encode_dict encode_func[type(v)](v, r) File "/usr/lib/python2.5/site-packages/BitTorrent/bencode.py", line 115, in encode_dict encode_func[type(v)](v, r) File "/usr/lib/python2.5/site-packages/BitTorrent/bencode.py", line 106, in encode_list encode_func[type(i)](i, r) File "/usr/lib/python2.5/site-packages/BitTorrent/bencode.py", line 106, in encode_list encode_func[type(i)](i, r) KeyError: <type 'float'>
Замечено было, что данная ошибка появлялась каждый раз, когда производилась запись в файл состояния. И соответственно при перезагрузке сервера битторрента ничего не сохранялось.
Погугля пол дня, я нарвался на одну статью, где рассказано, как включить поддержку float в bencode.py. На основании статьи соорудил следующий патч, который решает все проблемы:
--- bencode.py.org 2008-02-07 22:00:01.000000000 +0200
+++ bencode.py 2008-02-07 22:02:15.000000000 +0200
@@ -14,6 +14,8 @@
from BitTorrent import BTFailure
+import string
+
def decode_int(x, f):
f += 1
newf = x.index('e', f)
@@ -25,6 +27,23 @@
raise ValueError
return (n, newf+1)
+def assert_finite(n):
+ """Raises ValueError if n is NaN or infinite."""
+
+ valid_chars = '0123456789.-+eE'
+ if repr(n).translate(string.maketrans('',''), valid_chars) != '':
+ raise ValueError('encountered NaN or infinite')
+
+def decode_float(x, f):
+ f += 1
+ newf = x.index('e', f)
+ try:
+ n = float(x[f:newf].replace('E', 'e'))
+ assert_finite(n)
+ except (OverflowError, ValueError):
+ raise ValueError('encountered NaN or infinite')
+ return (n, newf+1)
+
def decode_string(x, f):
colon = x.index(':', f)
n = int(x[f:colon])
@@ -55,6 +74,7 @@
decode_func['l'] = decode_list
decode_func['d'] = decode_dict
decode_func['i'] = decode_int
+decode_func['f'] = decode_float
decode_func['0'] = decode_string
decode_func['1'] = decode_string
decode_func['2'] = decode_string
@@ -75,7 +95,7 @@
raise BTFailure, _("invalid bencoded value (data after valid prefix)")
return r
-from types import StringType, IntType, LongType, DictType, ListType, TupleType
+from types import StringType, IntType, LongType, DictType, ListType, TupleType, FloatType
class Bencached(object):
@@ -91,6 +111,10 @@
def encode_int(x, r):
r.extend(('i', str(x), 'e'))
+def encode_float(x, r):
+ assert_finite(x)
+ r.extend(('f', repr(x).replace('e', 'E'), 'e'))
+
def encode_bool(x, r):
if x:
encode_int(1, r)
@@ -119,6 +143,7 @@
encode_func[Bencached] = encode_bencached
encode_func[IntType] = encode_int
encode_func[LongType] = encode_int
+encode_func[FloatType] = encode_float
encode_func[StringType] = encode_string
encode_func[ListType] = encode_list
encode_func[TupleType] = encode_list
Данный патч касается версии bittorrent 4.4.0-5, которая не менялась со времён Fedora 7.
Метки: bittorrent, python
Вышел Compiz 0.7.0
2008-02-07 22:01 | Автор: Oleg | Filed under: Новости
После 5 месяцев разработки анонсирован новый релиз композитного менеджера Compiz 0.7.0. Новшества:
- Поддержка вывода на несколько мониторов;
- Изменение в организации работы плагинов. Выделен core plugin, предоставляющий расширенный доступ к API базового модуля. Новый объектный механизм, позволяющий добавлять новые объекты, без изменения интерфейса плагинов или нарушения целостности API;
- Приведение кода в соответствие с требованиями ICCCM (Inter-Client Communication Conventions Manual, стандарт определяющий правила взаимодействия X-сервера и X-клиента);
- Улучшение контроля прорисовки видимой области в cube plugin;
- Возможность настройки реакции на нажатие средней или правой кнопки мыши в gtk-window-decorator, задействования колеса прокрутки;
- Добавлен KDE4 порт kde-window-decorator. Исправлено несколько ошибок приводящих к краху kde-window-decorator;
- Многочисленные исправления ошибок.
Метки: compiz
Доступны спецификации и открытый драйвер для звуковых карт Creative X-Fi
2008-02-07 21:26 | Автор: Oleg | Filed under: Новости
Компания Creative Labs передала разработчикам 4Front Technologies спецификации на звуковые карты серии X-Fi, для которых до сих пор не были доступны Linux драйверы (не считая бета версии бинарного драйвера для x86_64 архитектуры). 4Front Technologies, в рамках новой сборки Open Sound System 4.0 Build 1013, оперативно выпустили тестовую версию драйвера sbxf. Драйвер был выпущен под лицензиями GPLv2, BSD и CDDL.
Кроме того, разработчики проекта ALSA ожидают на следующей неделе получить от Creative Labs документацию и начать портирование X-Fi драйвера в дерево исходных текстов ALSA. К сожалению релиз ALSA 1.0.16 был выпущен несколько дней назад и новый драйвер окажется включен только в состав ALSA 1.0.17, релиз которого выйдет через 3-4 месяца.
ATI Catalyst™ 8.452
2008-02-07 10:29 | Автор: Oleg | Filed under: Oleg
Наконец дошли руки поставить новый fglrx. Правда, руки доходили и раньше, но! в livna ещё не было релиза, а то что в тесте лежало - не работало. Да, действительно решили проблему с максимальным разрешением и работой с мониторами типа Wide (широкоформатный). Все прошло гладко. Но понадобилась перезагрузка, т.к. ядро стояло более свежее, чем нужно для kmod-fglrx, маленькие манипуляции с rpm и yum - и поставил другое ядрышко. естественно, перезагрузка. Все закрутилось. Единственное остался глюк связанный с первым запуском glxinfo или amdcccle. Всегда кидает в штопор, но последующие запуски не затыкаются.

