Nikolai Gishkevich, который писал про хибернейт и статьи которого попали в фид планеты, этот пост вам. Фид битый :) не могу прочитать статьи, а очень хочется. Почините фид и ссылки на статью, очень хочется почитать. :)
Автор, Nikolai Gishkevich, отзовись. :)
Июль 7, 2008 by masteddev
lazy initialization, python.
Июнь 11, 2008 by masteddevНаверное все знают зачем эта ленивая инициализация нужна и как, в общем случае, реализуется.
Для тех кто не знает, ниже я попытался, как мог, объяснить как оно работает. А еще ниже, привел пример кода декоратора, который немного упрощает реализацию “ленивой” инициализации в программах на питоне.
Немного о __doc__ и декораторах.
Сентябрь 5, 2007 by masteddevНедавно появилась потребность документировать декораторы… казалось бы ну и что тут такого? Бери и в коде документируй.
Но не все так просто, понадобилось документировать декораторы создаваемые уже на этапе выполнения, следовательно и документировать их нужно было на этом этапе.
Прочтите эту запись до конца »
vpn-сервер за NAT
Июнь 13, 2007 by masteddevЗадча ниже.
Дано:
Есть сеть за NAT’ом, наша сетка, в которой мы имеем возможность что-то сделать. (
locale_home_network)
Есть сеть на другой стороне ната, там мы, практически, ни чего сделать не можем. (remote_home_network).
Из locale_home_network в remote_home_network можно ходить только через нат, в обратном направлении вообще ни как.
Сеть locale_home_network имеет доступ еще к одной сети(other_network), к которой пользователи remote_home_network
доступа не имеют, но очень хотят.
Нужно:
Дать доступ к other_network пользователям из remote_home_network
Вот вроде так.)
“Белые решения”, типа реального адреса для vpn-сервера и т.д., не подходят)
Ниже то, что я уже придумал.
Прочтите эту запись до конца »
Сериализация объектов и twisted.spread.pb
Июнь 9, 2007 by masteddevВ принципе там всё просто и в рамках документации, пока объекты примерно таких классов используются:
class basicObject(object):
def __init__(self):
print "A bugogoa"
Всё становится гораздо сложнее, когда у нас в объекте появляется ссылка на другой объект, например:
class extendedObject(object):
def __init__(self):
self.basicObject = basicObject()
Тут мы на приеме объекта получим InsecureJelly, я примерно догадываюсь почему, но связно объяснить сейчас не могу, может кто расскажет?
В общем встал вопрос, а что делать?
Встал ответ: а хрен его знает.
Я сел. Думать.
Хорошенько подумав решил, что нужно сериализовать self.basicObject руками и слать его уже упакованным в строку, чтоб нидаибались), родилось вот это:
from StringIO import StringIO
import pickle, zlib
class extendedObject(object):
def setBasicObject(self, basicObject):
s_basicObject = StringIO()
pickle.dump(basicObject, s_basicObject)
s_basicObject.flush()
self.basicObject = zlib.compress(
s_basicObject.getvalue())
zlib.compress здесь для того, чтобы у нас StringIO объекта не оставалось, zlib.compress возвращает сжатую строку.
Ну вот вроде и всё, я не знаю, на сколько такое решение правильное и безопасное, сдается мне, что есть и более прямые пути, просто я о них еще не знаю)
Как только вкурю, как это всё работает “изнутри”, то отпишусь.
websvn+utf8
Июнь 7, 2007 by masteddevНи как не получилось заставить нормально работать websvn с utf8.
Пришлось сделать quick&dirty патчик, он отключает кеширование логов, проблемы с кодировками именно на этапе кеширования возникают.
diff патча можно взять тут.
После установки необходимо добавить в конфиг строку:
$config->myLocale=’<вашалокаль>’.
например $config->myLocale=’ru_RU.UTF-8′ в моём случае.
конфиг клиента mpd
Март 25, 2007 by masteddevДавно валяется этот файлик, кину сюда, чтоб не потерять Прочтите эту запись до конца »
void* как указатель на функцию, в ANSI C
Январь 9, 2007 by masteddevВчера узнал, что ANSI C не разрешает приводить void* к указателю на функцию, даже явно, например код:
void *(*screngine_init)(void);
screngine_init = dlsym(screngine_lib, “screngine_init”);
(*screngine_call)(void);
будет не корректным.
Существует два варианта, как справиться с этой задачей:
sysadnotes I
Январь 2, 2007 by masteddevактивация рута в postgresql:
#createuser -P -U pgsql root
шутдаун ноды нетграфа:
#ngctl shutdown ng0