Журнал

Страница с последними записями.

1 2 3 4 5 6 7 8 11 12
erlang functional

Пара ссылок по Erlang

Dmitry Vasiliev 11:30 PM, June 30, 2009

Нашел сегодня пару интересных для меня ссылок по Erlang.

Первая - это забавное видео где разработчики кратко рассказывают о возможностях Erlang. Достаточно интересно показывается возможность перезагрузки кода без остановки системы. Сначала Майк звонит Джо и откладывает трубку в сторону, после этого Майк пытается сделать конференцию с Джо и Робертом но это не получается из-за опечатки в коде. После исправления опечатки исправленный модуль перезагружается и Майку удается создать конференцию с Джо и Робертом. Но после этого Джо берет отложенную трубку, которая все это время была на линии, и разговаривает с Майком.

И еще обнаружил, что в данный момент для простых проектов я пользуюсь таким же способом тестирования, что и Джо Армстронг. Думаю, что это самый удобный способ тестирования для небольших проектов. Для больших проектов видимо может быть интересен упомянутый в заметке Test Server.

На сайте InfoQ сегодня опубликовали интересную заметку с расчетом денежной экономии от парного программирования. Здесь, конечно, не стоит серьезно относиться к абсолютной величине полученной суммы, хотя она и впечатляет - для группы из 40 разработчиков расчетная экономия составляет 4.5 миллиона долларов в год!

На практике успех парного программирования сильно зависит от команды, ее отдельных участников и правильного применения. Например, производительность может сильно уменьшится если "штурман" спит, а не активно участвует в процессе. ;-) Но при правильном применении увеличение производительности можно даже интуитивно почувствовать.

Рассчитанная сумма экономии может быть полезна при защите этой методики перед начальством. Хотя я боюсь, что среднестатистические руководители так и останутся при своем мнении, что в этом случае они будут не экономить, а только в два раза больше тратить.

erlang functional

Erlang и HTTP сервер

Dmitry Vasiliev 11:49 PM, June 23, 2009

В последнее время я стал достаточно активно заниматься изучением Erlang и по мере возможностей буду делиться своими открытиями и в этой области. Обычно, когда речь заходит об HTTP сервере написанном на Erlang, вспоминают MochiWeb, или Yaws. Но в стандартных модулях Erlang уже есть HTTP сервер как один из сервисов приложения Inets. Рассмотрим подробнее как с ним работать.

bazaar vcs

Вышел Bazaar 1.16rc1

Dmitry Vasiliev 8:52 PM, June 12, 2009

Сегодня вышел первый кандидат на релиз Bazaar 1.16. Может возникнуть вопрос - чем может быть так интересен кандидат на релиз? Это первый релиз Bazaar в котором часть документации переведена на русский. С учетом того, что было уже несколько попыток перевода и этот вопрос периодически поднимался в группе ru_bzr, выпуск перевода в официальном релизе - это большой успех для русскоязычного сообщества Bazaar.

Над переводом работает Russian Bazaar Users Group. Последнюю версию перевода теперь можно смотреть на сайте документации Bazaar: http://doc.bazaar-vcs.org/bzr.dev/index.ru.html. На данный момент переведено где-то 70% пользовательской документации, так что работа продолжается. Думаю, что полный перевод пользовательской документации будет закончен перед релизом Bazaar 2.0. Если есть желание помочь то, кроме непосредственно перевода, очень пригодятся сообщения об ошибках и опечатках в нем. Писать можно в группу ru_bzr, или непосредственно мне.

Последнее время многие пытаются делать какие-либо сравнения, но, к сожалению, большинство из них обычно выглядят следующим образом:

Решил сравнить яблоки и апельсины. Яблоки оказались тяжелее. Вывод: апельсины круче.

Проблема в том, что после этого куча "школьников" начинает вторить: "Да! Апельсины круче!", не понимая, что во-первых сравнение никакое и во-вторых - для каждой задачи нужен соответствующий ей инструмент.

Вот совсем свежий пример - Миша Кашкин написал как-бы сравнение HTTP-серверов. По этой заметке возникает сразу куча вопросов:

  • Какой контент отдают описанные сервера? Тут есть и Nginx и Django (собственно это и вообще не HTTP-сервер) и MochiWeb (записанный как Erlang). Каждый может работать и со статическим и с динамическим контентом, который, в свою очередь, может храниться и создаваться совершенно по-разному.
  • Настройки. Любимая тема в любом подобном "сравнении" - что-то сравнить, но не сказать про настройки, хотя связанные с этим "ошибки" могут изменить результаты и на порядок.
  • В заметке написано, что Nginx и Django "умерли" в первом тесте, но вот только не очень понятно, что это значит. На ум приходят варианты когда процесс не отвечает, или Segmentation Fault, или завершение процесса из-за нехватки ресурсов (см. настройки), а возможно и вообще что-то другое.

В конце заметки есть два замечательных вывода от ab. Оказывается, что Nginx/0.6.32 отдал 10000 раз документ длинной 151 байт за 2.289 сек., а MochiWeb/1.0 (записанный ранее как Erlang) отдал 10000 раз документ длинной 88 байт за 6.935 сек. О чем это должно говорить? Правильно - абсолютно ни о чем.

В итоге, конечно "апельсины" оказались круче - "лучше использовать сервера на erlang'e". Ой, а что же мне теперь выбрать? Может MochiWeb, а может Yaws, или HTTP-сервер который напишет на Erlang Вася Пупкин?

Мораль здесь следующая - читать сравнения конечно можно, но думать надо своей головой.

Новые версии подсветки Python для Vim - версии 2.6.4 и 3.0.1. Изменения:

  • Исправлена совместимость с pyrex.vim;

Скачать можно здесь:

Пару дней назад приключилась достаточно забавная история. Началось все с обнаружения на сервере нескольких несанкционированных e-mail сообщений, которые были посланы локально на левый адрес и застряли в отложенной очереди. При этом в теме сообщений значилось - "Новая рассылка N1". Первой мыслью было - кому-то удалось прорваться на одном из сайтов, через форму, которая могла отсылать e-mail... Анализ HTTP логов не показал никаких аномалий в этот момент времени. Были проанализированы все остальные логи и история команд, но никаких следов злоумышленника обнаружить не удалось. Потратив на анализ всех возможностей и размышления где-то около часа, я безнадежно отложил попытки, тем более, что рассылка не повторялась, хотя тема сообщений могла говорить о другом...

google

Google Blog Search Pinging Service

Dmitry Vasiliev 1:05 AM, March 14, 2009

Открыл для себя Google Blog Search Pinging Service. Например, обновился блог, ты об этом сообщаешь через XML-RPC, или REST и к тебе заглядывает бот. Кроме этого можно послать уведомление об обновлении и вручную. После этого новые записи должны быть добавлены на Google Blog Search.

Мало сказать, что я удивлен, обнаружив, что подавляющее большинство примеров по функции/методу send() не проверяют ее возвращаемое значение. Например, в документации Python написано, что метод send() возвращает количество реально посланных байтов, но при этом ни один пример это не проверяет. В итоге, новоиспеченные сетевые программисты копируют эти примеры и потом удивляются почему их приложения не всегда работают правильно.

Со всякими SMS сервисами я начал профессионально работать еще в 2002 году в компании SPN Digital, но даже сейчас, когда я занимаюсь совсем другим направлением, SMS вещи дают о себе знать. Обычно самое веселье начинается когда речь заходит о протоколе SMPP, версия 3.4 которого, до сих пор наиболее популярна среди операторов и различных посредников, коих сейчас развелось в огромном количестве.

1 2 3 4 5 6 7 8 11 12