Наткнулся на вредную багу при авторизации в ActiveDirectory: после успешного ldap.bind() получал ошибку "In order to perform this operation a successful bind must be completed on the connection". Решение нашлось в официальном FAQ python-ldap:
When searching from the domain level MS AD returns referrals (search continuations) for some objects to indicate to the client where to look for these objects. Client-chasing of referrals is a broken concept since LDAPv3 does not specify which credentials to use when chasing the referral. Windows clients are supposed to simply use their Windows credentials but this does not work in general when chasing referrals received from and pointing to arbitrary LDAP servers.
Therefore per default libldap automatically chases the referrals internally with an anonymous access which fails with MS AD.
Если по русски,- иногда AD-сервер возвращает ссылки на дополнительные сервера, на которых могут быть дополнительные результаты поиска. По умолчанию libldap пытается получить результаты с помощью анонимного доступа, в случае с Active Directory этот номер не проходит.
Решается добавлением l.set_option(ldap.OPT_REFERRALS,0) после ldap.initialize().
l = ldap.initialize('ldap://foobar')
l.set_option(ldap.OPT_REFERRALS,0)
ldap, python, windows, программирование
Чтоб не потерять, собрал в одну табличку голосовые кодеки для VoIP.
| Схема сжатия |
Скорость, Кбит/с |
Качество голоса |
| G.711 PCM |
64 |
Отличное |
| G.723 MP-MLQ |
6.4 - 5.3 |
Хорошее(6.4), плохое(5.3) |
| G.726 ADPCM |
40, 32, 24 |
Хорошее(40),плохое(24) |
| G.728 LD-CELP |
16 |
Хорошее |
| G.729 CS-ACELP |
8 |
Хорошее |
| iLBC |
15.20 - 13.33 |
Хорошее |
| IPCMWB |
13 |
Хорошее |
VoIP
Оказывается Skype ещё в марте открыл спецификации своего аудио кодека SILK для некоммерческого использования.
Краткая информация по кодеку доступна на странице для разработчиков, оттуда же доступны ссылки на весьма интересный драфт драфт RFC и описание формата RTP payload с отсылками к RFC 3550 и нескольким другим. Ощущение такое, что изначально всё базировалось на SIP.
И ещё срочно в номер: появился SkypeKit SDK, который позволяет любым программам и устройствам использовать сеть Skype для обмена сообщениями, контроля статуса, аудио и видео-связи без необходимости установки проприетарного клиента.
rfc, sip, skype, стандарты
Понадобилось по работе забивать данные из нескольких разноформатных файлов Excel в одну единообразную базу MySQL. Данных было много, вручную вбивать,- долго, да и ошибок можно наделать (ага, тот самый человеческий фактор). Естественным образом появилось желание автоматизировать этот ужос. Встроенный в MS Office VisualBasic показался некошерным по нескольким причинам: во-первых,- я его не очень хорошо знаю, а во-вторых,- не кроссплатформенно. Из других доступных языков под руками только Java и Python. Полез искать, что у нас есть в питоне для чтения Excel и нашёл чудесную совершенно библиотеку XLRD. Работает на любой платформе, где есть Python, легко читает всё что нужно. Небольшая проблема,- не читает формат xlsx (MS Office 2007), особо не вникал в чём проблема.
За запись Excel в Python отвечает парный пакет XLWT
microsoft, python, программирование
По наводке с хабра наткнулся на сайт Thomas Reitmayr со страницами Yeaphone. По словам автора, основная цель проекта,- создать интерфейс взаимодействия с USB-трубками Yealink (USB-P1K / P1KH / P4K) для Linphone, чтобы монитор и клавиатура были больше не нужны. Это позволит использовать трубки во встроенных системах (Embedded Device). В качестве основного устройства автор использует Linksys NSLU2 с альтернативной прошивкой, делающей железку полноценным линуксом. В добавок ко всему, автор предлагает использовать трубку совместно с Asterisk со всеми его расширениями, автоответчиками, планами нумерации и прочими полезняшками.
Потенциально на такой связке можно построить собственную небольшую АТС-ку размером с базу для DECT-овской трубки.
linux, sip, железки
Попал тут в руки SIP-телефон Grandstream, оказался без русской прошивки. На сайте есть Language Pack, в котором много всего, даже турецкий,- но русского нет. Проблема в том, что файлы локализации представляют собой нечто бинарное, с расширение .lpf. Полез смотреть хексом,- ба!, какая знакомая картинка: Читать далее...
hex, программирование
Иногда, когда пишешь на C (С++), бывают такие ситуации, что скорость разработки гораздо важнее скорости выполнения программы. В таком случае вместо постоянной компиляции и линковки выгоднее использовать интерпретатор С (С++). Язык С традиционно считается компилируемым, но, тем не менее, интерпретатор для него существует. И даже не один, встречайте:
Читать далее...
программирование, Штоп Не Потер Ять
Проект Route Views изначально разрабатывался как утилита, позволяющая в реальном времени получать информацию о системе маршрутизации (BGP) с точки зрения различных автономных систем (AS). BGPlay,- это приложение, написанное на Java, отображающее анимированные графы маршрутизации для определённых префиксов в определённое время. Графическое отображение позволяет легко понять, каким образом обновления BGP влияют на маршрутизацию определённых префиксов.
будни сисадмина
Чтобы использовать юникод в исходных кодах python, например в комментариях или значениях констант, нужно уведомить интерпретатор Python о том, что в коде присутствуют символы не из набора ASCII. Для этого нужно вставить в первой или второй строке комментарий специального вида:
# -*- coding: utf-8 -*-
Синтаксис комментария впервые введён в редакторе Emacs для установки локальных для файла переменных. Emacs поддерживает множество различных переменных, но в python поддерживается только 'coding'. Обрамляющие символы -*- показывают, что комментарий является специальной настройкой. Внутри комментария устанавливается имя переменной coding и значение, разделённое двоеточием
python, программирование
Правильному IT-шнику надо учить матчасть. Помимо IETF, известной специалистам по множеству документов RFC существует Международный Институт Электросвязи (International Telecommunication Union). ITU является ведущим учреждением Организации Объединенных Наций в области информационно-коммуникационных технологий. Роль МСЭ, как всемирного координационного центра для органов государственного управления и частного сектора, состоит в том, чтобы помогать миру общаться, и осуществляется в виде деятельности трех основных секторов: радиосвязи, стандартизации и развития. Деятельность МСЭ по разработке стандартов (Сектор стандартизации электросвязи ITU-T) является самым известным и самым давним видом его деятельности.
Читать далее...
itu-t, rfc, стандарты