Пару дней назад приключилась достаточно забавная история. Началось все с обнаружения на сервере нескольких несанкционированных e-mail сообщений, которые были посланы локально на левый адрес и застряли в отложенной очереди. При этом в теме сообщений значилось - "Новая рассылка N1". Первой мыслью было - кому-то удалось прорваться на одном из сайтов, через форму, которая могла отсылать e-mail... Анализ HTTP логов не показал никаких аномалий в этот момент времени. Были проанализированы все остальные логи и история команд, но никаких следов злоумышленника обнаружить не удалось. Потратив на анализ всех возможностей и размышления где-то около часа, я безнадежно отложил попытки, тем более, что рассылка не повторялась, хотя тема сообщений могла говорить о другом...
Открыл для себя Google Blog Search Pinging Service. Например, обновился блог, ты об этом сообщаешь через XML-RPC, или REST и к тебе заглядывает бот. Кроме этого можно послать уведомление об обновлении и вручную. После этого новые записи должны быть добавлены на Google Blog Search.
Мало сказать, что я удивлен, обнаружив, что подавляющее большинство примеров по функции/методу send() не проверяют ее возвращаемое значение. Например, в документации Python написано, что метод send() возвращает количество реально посланных байтов, но при этом ни один пример это не проверяет. В итоге, новоиспеченные сетевые программисты копируют эти примеры и потом удивляются почему их приложения не всегда работают правильно.
Со всякими SMS сервисами я начал профессионально работать еще в 2002 году в компании SPN Digital, но даже сейчас, когда я занимаюсь совсем другим направлением, SMS вещи дают о себе знать. Обычно самое веселье начинается когда речь заходит о протоколе SMPP, версия 3.4 которого, до сих пор наиболее популярна среди операторов и различных посредников, коих сейчас развелось в огромном количестве.
Александр Бельченко, один из разработчиков QBzr (графического интерфейса к распределенной системе контроля версий Bazaar) и в прошлом занимавшийся поддержкой Bazaar для Windows, в настоящее время достаточно активно занимается продвижением Bazaar в русскоязычном сообществе. В том числе уже больше года существует почтовая рассылка ru_bzr и в конце февраля был открыт русскоязычный блог о Bazaar - Базарный день в котором также пишу и я.
Если вас интересуют распределенные системы контроля версий, или Bazaar в частности - присоединяйтесь!
Добавил еще одну статью, которую я писал для журнала Системный Администратор - WSGI - протокол связи Web-сервера с Python приложением.
Многие сайты теперь используют для авторизации только OpenID. Все бы хорошо, но что делать если хочется использовать в качестве идентификатора OpenID свой личный сайт, но при этом не хочется заморачиваться с собственным сервером OpenID? Ответом на этот вопрос является возможность делегирования OpenID, которую я, кстати, уже достаточно давно использую.
Итак, для того что бы использовать свой сайт в качестве идентификатора OpenID нужно добавить в HTML код главной страницы под тегом <head> два тега <link> следующего содержания:
<link rel="openid.server" href="сервер OpenID которому делегируется авторизация" /> <link rel="openid.delegate" href="идентификатор OpenID на сервере" />
Например, на данный момент я использую LiveJournal в качестве сервера OpenID и моя конфигурация делегирования выглядит следующим образом:
<link rel="openid.server" href="http://www.livejournal.com/openid/server.bml" /> <link rel="openid.delegate" href="http://hdima.livejournal.com" />
Один мой хороший приятель как-то посоветовал использовать для обработки HTML библиотеку html5lib. На тот момент я уже использовал BeautifulSoup и поэтому отнесся к предложению прохладно. Через некоторое время я наткнулся на документ для которого BeautifulSoup стабильно выкидывал HTMLParseError и приходилось делать "массаж". В итоге, я решил попробовать, что же за "зверь" такой html5lib.
Уже прошло больше месяца как вышел Python 3.0. В меру своего свободного времени мне удалось с ним повозиться и можно описать первые впечатления.
Что-то последнее время стали много писать про Git. Например:
- Какие системы контроля версий используются для поддержки пакетов Debian;
- GNOME остановил свой выбор на Git;
- И даже - почему Git лучше чем X (где X - это hg, bzr, svn и perforce). И там же рядом провокационный сайт - почему Bzr лучше чем X;
Собственно, раньше у нас была единственная система контроля версий с открытым исходным кодом - CVS. Затем появилась "лучшая CVS" - Subversion. Но теперь многие открытые проекты потихоньку переходят на распределенные системы контроля версий и здесь у нас уже несколько игроков, основные из которых: Git, Bazaar и Mercurial. У каждой из систем есть свои достоинства и недостатки, но и PR кампания тоже может иметь большое значение. Многие пользователи, начинающие знакомиться с распределенными системами, обычно выбирают, что-то наиболее популярное и пока больше всего шуму производят последователи Git.