На днях прочитал отличную статью от Steve Vinoski - Don’t Lose Your ets Tables. Давно задумывался над этой проблемой - если процесс использует ets таблицы для хранения данных и перезапускается супервизором после неожиданного завершения, то все данные в таблицах будут потеряны. Во многих случаях данные могут накапливаться за время жизни процесса и не могут быть просто пересозданы даже перезапуском всех процессов. Steve предлагает воспользоваться возможностью указания наследника (heir) для таблицы и возможностью передавать таблицу другому процессу с помощью функции ets:give_away.
Вчера решил более плотно заняться этой проблемой и реализовать gen_server модуль ets_manager, который делает следующее:
Новая версия подсветки Python 3.0 для Vim версии 3.0.6. Внимание: Только для Python 3.0! Изменения:
Скачать можно здесь:
Новая версия подсветки Python 3.0 для Vim версии 3.0.5. Внимание: Только для Python 3.0! Изменения:
Скачать можно здесь:
Новая версия подсветки Python 3.0 для Vim версии 3.0.4. Внимание: Только для Python 3.0! Изменения:
Скачать можно здесь:
Новая версия erlport - библиотеки для Python позволяющей упростить взаимодействие с Erlang.
Изменения в версии 0.6:
Ссылки проекта:
Обновил плагины для Mozilla Firefox:
Изменения одинаковые:
Новые версии подсветки Python для Vim - версии 2.6.6 и 3.0.3. Изменения:
Скачать можно здесь:
Выпустил новую версию erlport - библиотеки для Python позволяющей упростить взаимодействие с Erlang.
Изменения в версии 0.5:
Ссылки проекта:
Не так давно передо мной встала задача программно разархивировать на одном из узлов Erlang tar.gz архив, который находился на другом узле. Ниже приводится подробный ход мыслей в направлении решения и решение к которому эти мысли привели.
Воспитанный на совсем других языках, изначально я смекнул следующее - Erlang у нас "из коробки" поддерживает передачу сообщений, соответственно нужно на узле с архивом открыть его как файл, потихоньку читать и сообщениями каждый кусочек пересылать на второй узел. На втором узле нужно все это дело потихоньку записывать в новый файл, который по окончании пересылки остается только разархивировать.
Написал новую статью про использование портов Erlang. Кроме этого выпустил версию 0.4 erlport - библиотеки для Python упрощающей взаимодействие между Erlang и Python с использованием портов Erlang.