HIGH Labs

Приветствую! Меня зовут Дмитрий Васильев и этот сайт посвящен разработке ПО и связанным вопросам. Основные темы сайта можно посмотреть по меткам, а из новостей ниже узнать о последних изменениях. Основные разделы сайта:

1 2 3 4 5 6 7 8 11 12

На днях прочитал отличную статью от Steve Vinoski - Don’t Lose Your ets Tables. Давно задумывался над этой проблемой - если процесс использует ets таблицы для хранения данных и перезапускается супервизором после неожиданного завершения, то все данные в таблицах будут потеряны. Во многих случаях данные могут накапливаться за время жизни процесса и не могут быть просто пересозданы даже перезапуском всех процессов. Steve предлагает воспользоваться возможностью указания наследника (heir) для таблицы и возможностью передавать таблицу другому процессу с помощью функции ets:give_away.

Вчера решил более плотно заняться этой проблемой и реализовать gen_server модуль ets_manager, который делает следующее:

  • При создании через него таблицы, ets_manager указывает свой рабочий процесс в качестве наследника;
  • При закрытии процесса работающего с таблицей рабочий процесс ets_manager получает и сохраняет таблицу у себя;
  • Пересозданный супервизором процесс забирает таблицу с данными у рабочего процесса ets_manager;

Новая версия подсветки Python 3.0 для Vim версии 3.0.6. Внимание: Только для Python 3.0! Изменения:

  • Исправлена подсветка для микро-формата str.format() (патч от Anton Butanaev);

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

Новая версия подсветки Python 3.0 для Vim версии 3.0.5. Внимание: Только для Python 3.0! Изменения:

  • Исправлена подсветка символов экранирования для байт-строк (патч от Anton Butanaev);
  • Исправлена подсветка для ошибочных символов в числах;

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

Новая версия подсветки Python 3.0 для Vim версии 3.0.4. Внимание: Только для Python 3.0! Изменения:

  • Приложен патч от Anton Butanaev исправляющий подсветку для raw bytes литералов;

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

erlang functional python

erlport 0.6

Dmitry Vasiliev 17:44, 2010 4 26

Новая версия erlport - библиотеки для Python позволяющей упростить взаимодействие с Erlang.

Изменения в версии 0.6:

  • Добавлено кодирование для datetime (mmikulicic);
  • Исправлена ошибка при декодировании "больших" целых (Paul Bonser);

Ссылки проекта:

Обновил плагины для Mozilla Firefox:

Изменения одинаковые:

  • Добавлена поддержка Firefox 3.6;
  • Добавлена Русская локализация;

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

  • Приложен патч от Andrea Riciputi с двумя новыми опциями конфигурации "python_highlight_builtin_objs" и "python_highlight_builtin_funcs";

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

erlang functional python

Релиз erlport 0.5

Dmitry Vasiliev 21:01, 2010 2 25

Выпустил новую версию erlport - библиотеки для Python позволяющей упростить взаимодействие с Erlang.

Изменения в версии 0.5:

  • Оптимизировано кодирование/декодирование больших целых (Bob Ippolito);
  • Оптимизации кодирования данных (Bob Ippolito);
  • Добавлена поддержка кодирования/декодирования сжатых данных (Bob Ippolito);
  • Добавлена поддержка кодирования/декодирования dict как proplist (Bob Ippolito);
  • Добавлена поддержка кодирования/декодирования True, False как атомов true, false (Bob Ippolito);
  • Добавлена поддержка кодирования/декодирования None как атома none;
  • Добавлен пример использования сжатых данных;

Ссылки проекта:

Не так давно передо мной встала задача программно разархивировать на одном из узлов Erlang tar.gz архив, который находился на другом узле. Ниже приводится подробный ход мыслей в направлении решения и решение к которому эти мысли привели.

Воспитанный на совсем других языках, изначально я смекнул следующее - Erlang у нас "из коробки" поддерживает передачу сообщений, соответственно нужно на узле с архивом открыть его как файл, потихоньку читать и сообщениями каждый кусочек пересылать на второй узел. На втором узле нужно все это дело потихоньку записывать в новый файл, который по окончании пересылки остается только разархивировать.

Написал новую статью про использование портов Erlang. Кроме этого выпустил версию 0.4 erlport - библиотеки для Python упрощающей взаимодействие между Erlang и Python с использованием портов Erlang.

1 2 3 4 5 6 7 8 11 12