You are viewing pyhedgehog

Wed, Jan. 1st, 2020, 12:00 am
Вместо приветствия

Почему добавлять меня "в друзья" НЕ нужно:
1. я не обижаюсь на "невзаимность" (это ж не показатель отношения, а техническое средство)
2. я добавляю в свою ленту друзей чтобы читать (см. 1)
3. я почти ничего не буду писать (я видимо в душе куманец - считаю, что слушать/читать гораздо интереснее чем говорить)
Если хотите проявить свою приязнь - это лучше сделать текстуально, а не технически.

Wed, Jul. 31st, 2013, 05:05 am
Python: Особенности работы с multiprocessing

Черновые заметки по общению с модулем multiprocessing - возможно они станут ответами на чьи-нибудь вопросы.

1. Если у вас нормально работал отдельно код использующий Manager, но внезапно перестал работать после вставки в ваш проект, проверьте, не делаете ли вы manager.start() до того как сделать fork. Между прочим multiprocessing.Manager() возвращает уже стартованный multiprocessing.managers.SyncManager. Симптомы - ошибка "IOError: [Errno 32] Broken pipe".

2. Нельзя использовать mutable типы в качестве элементов других mutable типов используемых через Proxy manager'а, даже если "вложенный" mutable объект тоже обёрнут в Proxy. Например, следующая конструкция некорректна:

d = manager.dict()
d[1] = manager.list()

Приводит это к следующему:
a) Создаётся dict() в процессе manager'а и возвращается DictProxy.
b) Создаётся list() в процессе manager'а и возвращается ListProxy.
c) ListProxy передаётся в __setitem__ и после свёртывания-развёртывания в dict в процессе manager'а попадает просто list. Пока всё нормально.
d) Когда вы пытаетесь использовать d[1] вам из DictProxy.__getitem__ возвращается просто маршализированная копия списка, а не ListProxy.

NB: Оказывается, можно. зарегистрировав специальный тип в manager'е (без метода создания - create_method=False), и использовать этот тип в определении возвращаемого значения в методе объекта - проще всего, как _method_to_typeid_ в proxy. В качестве примера можно посмотреть PoolProxy._method_to_typeid_ и типы Iterator и AsyncResult.

Thu, Jan. 10th, 2013, 10:21 pm
Oracle на FreeBSD

Как, оказывается, известно всем, subj - жуткое извращение, но деваться некуда.

"Давайте жить дружно!"
Первый вариант - поставить /usr/ports/databases/linux-oracle-instantclient-*. Но у этого варианта есть большой недостаток - динамическая библиотека собранная под Linux не работает в процессе собранном под FreeBSD. Если нужно использовать какую-нибудь ещё стороннюю библиотеку (например mysql), придётся либо ставить версию этой библиотеки под Linux, либо разделять программу на два куска скомпилированные под разные архитектуры и общающиеся через какой-нибудь IPC. Обе идеи сомнительны.

"Старый друг, лучше новых двух."
Второй вариант - поставить /usr/ports/databases/oracle8-client. Там статическая библиотека которая может линковаться к бинарю без Linux-эмуляции (только нужно не забыть -lcompat). Но и тут есть неприятность - не поддерживаются новые функции. Например db change notification.

"Если бы губы Никанора Ивановича да приставить к носу Ивана Кузьмича..."
Хорошо было бы найти способ собрать по методу oracle8-client новый клиент. Для этого как минимум нужно понять как это было сделано.
1. Информация в ports ведёт на страницу скачивания http://samodelkin.net/~fjoe/oracle/
2. Поиск привёл в архивы http://www.frozenfido.ru/ru.unix.bsd/186342a627c1.html
Тут мы выяснили некоторые намётки метода и, главное, имя автора...
3. По имени/нику автора получилось найти несколько его контактов:
http://www.freebsd.org/doc/ru/books/handbook/book.html#pgpkey-fjoe
http://lib.udm.ru/lib/LINUXGUIDE/freebsd_handbook.html#PGPKEY-FJOE
https://www.facebook.com/samodelkin
http://fjoe.livejournal.com/profile?mode=full
4. Немного больше настойчивости пришлось применить при поиске "оригинала" - Oracle 8i client для Linux:
http://ftp.comp.hkbu.edu.hk/pub/oracle/linux/
5. Оказывается процесс хака описан в файле README.PORT, который ставится в /usr/local/oracle8-client. И таки это слегка модифицированный libclntst8.a от Linux-клиента. Тонкость в том, что статическая библиотека, по умолчанию, не ставится вместе с клиентом. Её нужно отдельно генерировать скрипто genclntst, который с instant client'ом не ставится.

Итак - нужно поставить полноценный (не instant) клиент под linux (с glibc 2.3), сгенерировать статическую библиотеку и извратить её скриптом от порта восьмёрки.

Окончание следует.

Fri, Dec. 14th, 2012, 06:56 pm
Обзор библиотек Python для работы с SNMP

Crosspost: https://docs.google.com/document/pub?id=1bVVnWh3V5d6V-THz6lWf1yAuzWAwhVZSYDJflSPOiSo

У всех найденных библиотек очень плохо с документацией.

netsnmpCollapse )pysnmpCollapse )libsnmpCollapse )

Другие

Источник: http://pypi.python.org/pypi?%3Aaction=search&term=snmp&submit=search

Есть ещё много библиотек на которые у меня не хватило дыхания. Возможно там и скрываются жемчужины проектирования и реализации, но исследование “неудачников” я отложу до следующего раза...

Mon, Feb. 27th, 2012, 06:46 pm
Модуль dbms_output для cx_Oracle

Написал тут простенький модуль для использования вместе с cx_Oracle для получения вывода через модуль dbms_output.


ПримерCollapse )


Ну и сам модуль dbms_output.pyCollapse )

Tue, Dec. 6th, 2011, 11:59 pm
Перепостите это число - 632305222316434

Оригинал взят у spichechka в Перепостите это число - 632305222316434
- если считаете, что результаты выборов фальсифицированы.

Поисковики позволят подсчитать сколько раз эта цифра появляется в Интернете - то есть сколько людей согласны с этим мнением. Текущие результаты "голосования" можно посмотреть здесь.

Просто поставьте его в любом месте у себя в блоге, ленте, сайте, где угодно.

Sun, Oct. 11th, 2009, 07:06 am
Про политику

Я всё-таки не выдержал общего скулежа и написал...

Я искренне сочуствую людям которые говорят "Не троньте советскую власть - мы в этой стране выросли и нам это дорого!". Можно понять тех кто родился раньше 1970го года - они в сознательном состоянии застали и Андропова и более ранних деятелей и возможно их вся эта советская реальность действительно окружала и стала привычна, и естественно вызывает ностальгию, но своих ровестников я не понимаю напрочь (70+15=85 - как раз к "сознательному" возрасту пришёл Горбачёв. Тех кто в 3 года интересовался политикой просьба не сюда, а в ru_wunderkind).

Лично я (77го года рождения) не рос в стране битвы за урожай, борьбы с космополитизмом, славы кпсс, развитого социализма и прочих прелестей в том же духе. Ровно так же как и сейчас я не живу в стране рекламы, конвеерных звезды и фанерных песен. Я вырос в стране где меня любили родители (я до сих пор уверен, что мои родители лучшие и умнейшие люди) и их друзья. Где если окружающая страна делает мне какую-нибудь гадость - родители всегда помогут, а то и предотвратят. Где если с родителями случается неприятность - друзья и родственники сразу помогают. Я вырос в стране, где пели хорошие песни, среди которых было много антисоветских, но и некоторые советские (например Бумбараш). Я вырос в стране, где в трёх школах которые я сменил бывали всякие агитационные материалы, но был только один человек который принимал их всерьёз - военрук (и то большую часть времени он думал не об этом, а о том где найти ещё бутылку).

Я и сейчас живу в такой стране. В стране где верят родным, а не телевизору. В стране где занимают у друзей, а не у банка. В стране где всегда можно найти человека который поможет. И я искренне сочуствую людям которые живут в стране вертикали власти и отсутсвия свободы печатного слова. Боже мой, я всюду куда не повернусь встречаю жалобы на свободу слова. Как же они умудряются публиковать эти жалобы...

Внимание: говоря про современную ситуацию я имею в виду Москву и другие большие спокойные города. Я не имею в виду жителей "горячих точек", которые (увы и при моём бездействии) живут в условиях власти каннибалов. Но они - жертвы, и они не кричат в ЖЖ... В ЖЖ кричат совсем другие люди.

Всё. Я выдохся - теперь можете кидать в меня калом, поскольку я точно знаю, почему я всего этого не должен был писать.

Upd: Не одного меня этот скулёж достал...

Wed, Apr. 22nd, 2009, 09:12 pm

Есть один человек который затеял полезное дело - лекции по пользованию Unix'ом. Что из этого выйдет - не знаю. Что выйдет из моей идеи - тем более.

10 most recent