Весь список Erlang eXchange 2008

16-07-2008

http://ocaml.cn/en/node/479

По этой сылке можно найти все видео и все слайды с конференции Erlang eXchange 2008

Erlang Contextual Code Completion Library

08-07-2008

Erlang Contextual Code Completion Library

Набор библиотек, позволяющих реализовать контекстно-зависимое автодополнение кода в любом редакторе кода.

Слайды: RabbitMQ

04-07-2008

RabbitMQ: Open-Standard Business Messaging
in 5000 lines of Erlang

Слайды с конференции Erlang eXchange 2008. Авторы: Matthias Radestock и Tony Garnock-Jones из LShift Ltd.

EIFAWS - Erlang + Amazon Web Services

04-07-2008

EIFAWS

Новый модуль для работы с Amazon Web Services.

Видео с Erlang eXchange 2008

04-07-2008

Видео с конференции Erlang eXchange 2008 находятс на Google Video по запросу Erlang eXchange 2008

Темы некоторых видео:
- Erlang Enterprise Integration
- Keynote: Armstrong on Software
- Erlang + D-Trace
- ejabberd for Web 2.0
- Couch DB at 10,000 feet
- Quick Check for Erlang
- Wrangler
- Building a Transactional Data Store

и т.п.

Log4erl

29-06-2008

Логгер для Эрланга. Цель проекта - реализация всех свойств семейства Log4* (особенно Log4J)

Получить можно здесь: http://code.google.com/p/log4erl

etorrent

29-06-2008

etorrent - это полноценный битторрент-клиент, написаный на Эрланге.

Получить его можно здесь: http://code.google.com/p/etorrent/

Mnesia Unlimited

24-06-2008

Mnesia Unlimited

Неутомимый Joel Reymont закончил свою работу над Мнезией. Теперь Мнезию можно использовать в качестве фронт-енда к любой базе данных, будь то BerkleyDB, MySQL или Tokyo Cabinet

Новая мнезия доступна здесь:
- http://code.google.com/p/mnesiaex/

Там же - пример с использованием Tokyo Cabinet.

Frabjous

24-06-2008

Oh Frabjous Day!*

Кевин Смит представляет библиотеку frabjous (доступную с сайта GitHub здесь: http://github.com/kevsmith/hypotheticalabs/tree/master).

Frabjous является оберткой над Erlang parse transforms:
- общается напрямую с компилятором, избавляя от необходимости пробегаться по всему дереву AST
- определяет новое поведение (behaviour), ast_transformer, которое можно испольовать для задания parse transforms.

Короткий пример:


-module(pt_test).
-define(SERVER, ?MODULE).

-include_lib("frabjous/include/frabjous.hrl").
-frabjous([{remote_call, [{debug, true}]}]).

-behaviour(gen_server).

Подключив frabjous.hrl, мы "включили" frabjous.

Трансформатор remote_call принимает атрибуты следующим образом:


-call_gen_server([{server, ?SERVER},
{name, add},
...

Erlang + Aptitude

12-06-2008

I'm in ur Erlangz, upgrading ur applicationz

Dukes of Erl все не могут угомониться. На этот раз они написали систему, которая позволяет осуществлять горячую замену кода в приложениях, используя Линуксовый apt-get.

Код проекта доступен на Google Code

Erlang R12B-3

12-06-2008

Вышел третий багфикс для версии R12B

- README
- Скачать

Настройка ErlyWeb и PostgreSQL

11-06-2008

Configuring Erlyweb with postgres

Небольшая статья, описывающая, как настроить ErlyWeb для работы с PostgreSQL

Reia - Ruby/Python для Эрланга

05-06-2008

Reia Programming Language

Reia предлагает смешаную парадигму программирования в стиле Питона/Руби. На данный момент цель проекта - компиляция в Erlang AST, который можно скормить компилятору Эрланга.

Erlide 0.3.54

03-06-2008

Erlide 0.3.54

Новая версия Erlide

Ejabberd как основа cloud computing

02-06-2008

YAML-Erlang

02-06-2008

yaml-erlang

Библиотека (на данный момент весьма базовая) для работы с форматом YAML

Serl - Lisp-frontend к Эрлангу

29-05-2008

Serl - Sexp-based ERLang

К этому чуду даже есть туториал (в файлах по ссылке)

Twoorl

29-05-2008

Twoorl

Twoorl - это опенсорсный клон Twitter'a, созданый неуемным Яривом Саданом с помощью ErlyWeb'а

Erlang by example

28-05-2008

В продажу поступили первые скринкасты из серии Erlang by example:

- Episode 1: Sending and Receiving Chat Messages (30 mins)
- Episode 2: Messaging Clients By Nickname (29 mins)
- Episode 3: Distributing Clients In A Multi-node Environment (31 mins)

Каждый эпизод стоит 5 долларов. Автор - Kevin Smith

leex- a lexical anaylzer generator

24-05-2008

Вышел первый полноценный релиз leex

Скачать с trapexit'а

Очередной web-framework

24-05-2008

derail - A simple web framework

Torbjorn Tornkvist обхявил о создании еще одного веб-фреймворка для Эрланга.

Особенности фреймворка:
- интеграция в Erlware
- поддержка шаблонов SGTE

На данныый момент собственно релиза нет, код фреймворка генерируется их спецификации (10 строк)

- Документация

Сам фпеймворк доступен из erlware

Использование tail

22-05-2008

Monitoring log files with 'tail'

Статья описывает, как использовать *nix'овую команду tail для отслеживания изменений в log-файлах

Ejabberd 2.0.1

22-05-2008

Erlbol

20-05-2008

Erlbol: Erlang + REBOL gui

Проект Erlbol использует REBOL для создания пользовательских интерфейсов

- Скриншоты
- Документация
- Скачать

QuickCheck demo

19-05-2008

QuickCheck demo

Короткие видео-демонстрации работы QuickCheck'а

Haskell в среде Эрланга

19-05-2008

Yhc/Erlang/Proof of concept

Статья описывает результаты выполнения программ, написаных на Haskell'е в контексте Erlang VM.

Программа, написаня на Хаскеле, копилируется с помощью Yhc Haskell Compiler. Полученый код компилируется в Erlang Core с помощью программы, описаной в статье. После чего полученая программа компилируется в BEAM

Позднее связывание в Эрланге

19-05-2008

Late binding with Erlang

Автор статьи обнаружил, что MochiWeb использует параметризированые модули, позволяющие реализовать позднее связывание в Эрланге. Статья описывает пример использования параметризированых модулей

Erlang vs. Scala

19-05-2008

Erlang vs. Scala

Довольно длинное сравнение, которое может служить введением как в один, так и в другой язык

Facebook Chat

15-05-2008

Facebook Chat

Описание того, как Эрланг помог разработчикам Facebook'а создать чат, могущий обслуживать до 70 миллионов активных пользователей.

Документация по distel'у

13-05-2008

Distel User Manual

Mats Cronqvist выложил документацию к distel'у в HTML-формате

OCamerl - пример

13-05-2008

Ocamerl - Erlang … echo-ing in shells

Небольшой пример работы с библиотекой erlocaml.

Opensource приложение на ErlyWeb

08-05-2008

FluxHP - World of Warcraft guild DKP/HP manager

Посмотреть на то, как оно работает можно здесь: http://points.flux-medivh.com/

dsl_erlang demo

08-05-2008

Если вы помните, Torbjorn Tornkvist решил создать Natural Language DSL Engine, который позволил бы задаваь запросы к Mnesia на более-менее человеческом языке.

Появилась возможность проверить это на практике

Процес установки (с помощью следующий):

wget http://faxien.googlecode.com/files/faxien-launcher-universal-0.3.3.py

sudo python faxien-launcher-universal-0.3.3.py

sudo /usr/local/erlware/bin/faxien install-release dsl_engine_demo

/usr/local/erlware/bin/dsl_engine_demo

После этого достаточно перейти в браузере по адресу http://localhost:9898/ и попробовать свои силы (или посмотреть на примеры).

В демо включены две таблицы:

invoice : table that contains all data related to a particular invoice
create_date : the date, in format: YYYY-MM-DD , when the invoice was created
goods_sum : an integer representing the sum of all goods
invno : holds the unique invoice...

Новая версия Lisp-Flavored Erlang

26-04-2008

Подробная информация

- LFE - это Lisp-2, как Common Lisp, а не Lisp-1, как Scheme. Теперь в LFE функции и переменные разнесены по разным пространствам имен

- В примерах есть два интерпретатора - написаный на Эрланге и написаный на самом LFE

- Присутствует рудиментарный REPL

Остальные подробности - по ссылке

Tag clouds in Erlang with ErlyWeb

22-04-2008

Tag clouds in Erlang with ErlyWeb

Статья, объясняющая, как создать облако тэгов с помощью ErlyWeb

Модуль Array

22-04-2008

Начиная с версии R12B в Эрланге присутствует модуль array

Эта маленькая заметка описывает, как реализовать двоичный поиск, используя этот новый модуль

Hessian

18-04-2008

Proposed Hessian Extension For Erlang

Статья, описывающая детали реализации двоичного протокола Hessian в проекте Cotton

wxErlang

11-04-2008

Вышла новая версия GUI-библиотеки wxErlang

Скачать можно по адресу http://www.erlang.org/~dgud/wxerlang

RESTful Webservice

10-04-2008

A RESTful web service demo in yaws

Короткая статья, описывающая, как создать веб-сервис с использованием REST в Yaws

Erlang/OTP R12B-2

10-04-2008

Обновилась версия Erlang/OTP - R12B-2

- Скачать
- Readme

Поддержка cookies в ejabberd

05-04-2008

Add cookie support in ejabberd

Сттья описывает, как добавить поддержку cookies в ejabberd

Проверка распределенных программ

04-04-2008

Erlide 0.3.4

02-04-2008

Новая версия Erlide

В новой версии:
- поддержка R11B
- улучшеная консоль с подсветкой синтаксиса
- очистка ETS-таблиц, содержащих данные парсинга и анализа, при выходе из редактора
- лексическое сканирование потребляет меньше памяти
- кэширование документации и структуры файла (для функциональности Go to)
- корректная обработка включаемых файлов (теперь находятся определения в этих файлах)
- простое автодополнение имен модулей в редакторе

epryl 0.1.2

02-04-2008

Вышла новая версия библиотеки epryl

Библиотека epryl позволяет производить сериализацию/десериализацию Питоновских pickle'ов (сераилизированых питоновских объектов)

Библиотека доступна из Erlware

Friendsfeed API

01-04-2008

Announcing the Erlang FriendFeed API

Friendfeed позволяет отслеживать людей на различных социальных сайтах. Yariv Sadan написал байндинг к его API

Проект доступне на Google Code

Новая версия парсера Erlsom

31-03-2008

Erlsom

В новой версии:
- SAX-парсер работает напрямую с binaries, что дает прирост скорости и уменьшение потребления памяти в R12B

Дополнительные изменения в SAX-парсере:
- поддержка пользовательских сущностей (user-defined entities)
- улучшение и упрощение работы с continuation-функцией для поддержки работы в потоковом режиме
- значения на выходе могут быть binaries

Elsom теперь распространяетя под лицензией LGPL

Masterbrain - диспетчер типа rev-proxy

31-03-2008

Masterbrain

Если у вас есть несколько веб-систем, к каждой из которых хочется предоставить доступ через сайт и/или один и тот же порт, то зачем использовать сторонние компоненты, если можно использовать Эрланг?

На сервере только одна нода будет запущена с Yaws. Это мой веб-сервер. Я настраиваю docroot'ы Yaws для виртуального хостинга моих систем. Потом в каждом .yaws-файле я помещаю один-единственный удаленный вызов к ноде, которая будет выполнять всю работу. Результат вызова должен быть понятен для Yaws.

Это значит, что ни одной из моих систем уже не нужен отдельный Yaws-сервер. Это также означает, что нам больше не нужны традиционные прокси вроде lighttpd. Такой поход...

Crary - легковесный веб-сервер

31-03-2008

Crary

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

Пример использования:

start() ->
crary:start(8080, {?MODULE, handler, []}).

handler(#crary_req{method = "GET", uri = #uri{path = "/favicon.ico"}} = Req) ->
crary_dir_listing:write_file(Req, filename:join([my_doc_root(), "favicon.ico"])); ...

Erlang + Facebook

24-03-2008

Еще одно приложение для Facebook'а, написаное с использованием Эрланга (Erlang + Mnesia + ErlyWeb)

- Приложение I Play WOW
- Описание

Новая книга по Эрлангу

24-03-2008

Анонс

У Прагматиков намечается новая книга по Эрлангу. В ней будет рассказано про OTP, mnesia, web programming (Yaws, Mochiweb, Erlyweb), а также освещены некоторые другие темы, такие как парсинг XML и юнит-тестироване

Бенчмарк Эрланга

24-03-2008

В бенчмарке создается множество процессов и между ними пересылаются простые сообщения

- Сам бенчмарк
- Обсуждение

Результаты:

C (pthread - GNU gcc): в 8.5 медленее
Python: в 15 x медленее, в 1.4 больше памяти
Java: в 20 x медленее, в 5.8 больше памяти
Ruby: в 282 x медленее, в 3.4 больше памяти

via Roberto Saccon

Natural language DLS engine

20-03-2008

Natural language DLS engine

Как бы обернуть QLC так, чтобы человек, даже далекий от программирования, мог бы создавать запросы, возвращающие данные из таблиц Мнесиа.

Добываем dsl_engine.erl из гит-репозитория и начинаем:

X = dsl_engine:init(?MODULE,
["invoice","person"],
[{"invno", "invoice"},
{"estore", "invoice"},
{"goods_amount", "invoice",
...

Identation sensitive Erlang

20-03-2008

Питон Эрланг, чувствительный к отступам? Легко: Indentation-sensitive Erlang

Пример:

-module(test).

-compile(export_all).
-scan(indentation).

f(X) ->
X+2
.

g(X) ->
X+4
.

h(X) ->
Y = case X of
a ->
{a}
b ->
{b}
end
Y
.

Простейший способ подвесить Erlang VM

18-03-2008

Exploring Erlang

18-03-2008

Erlang + ICU

17-03-2008

Hasan Veldstra выпустил альфа-версию библиотеки Starling, байндинга к ICU.

На данный момент библиотека поддерживает сравнение, конкатенацию, получение и нахождение подстроки, переключение регистров

- Home page
- Google Code

Joe Armstrong: Erlang Podcast

13-03-2008

Плохой и хороший Эрланг

10-03-2008

Why Erlang Sucks от создателя CouchDB Дамиена Катца

In Response to “What Sucks About Erlang” - ответ от создателя ErlyWeb Ярива Садана

Рекурсивные директории и binary pattern matching

10-03-2008

Comet + Erlang

10-03-2008

Comet lib for Erlang

Небольшая библиотека, использующая jQuery:

git clone git://www.tornkvist.org/domerl

LYME vs. LAMP

07-03-2008

Lyme vs Lamp

Серия сравнений LYME(Linux + Yaws + Mnesia + Erlang) с LAMP(Linux + Apache + MySQL + PHP)

LYME - новый сайт

07-03-2008

LYME - это Linux + Yaws + Mnesia + Erlang

Новый сайт, использующий эти технологии: http://www.dayfindr.com/

- Объявление о запуске

Быстрая перезагрузка скомпилированого кода

06-03-2008

Easy load of recompiled code

Часто возникает такой вопрос: как быстро перезагрузить изменный код?

"Русский хакер", предоставивший этот код, разыскивается, для благодарности

lm() ->
[c:l(M) || M <- mm()].

mm() ->
modified_modules().

modified_modules() ->
[M || {M, _} <- code:all_loaded(),
module_modified(M) == true].

module_modified(Module) ->
case code:is_loaded(Module) of
{file, preloaded} ->
false;
{file, Path} ->
CompileOpts =
proplists:get_value(compile, Module:module_info()),
CompileTime =...

ErlyBird 0.16.0

06-03-2008

ErlyBird 0.16.0 Released

Обновилась IDE ErlyBrd.

По ссылке описание изменений.

Внимание. В новой версии изменился формат метаданных проекта, поэтому перед открытием старых проектов в файле project.xml необходимо заменить

<type>org.netbeans.modules.languages.erlang.project</type>

на

<type>org.netbeans.modules.erlang.project</type>

- Скачать

Tsung 1.2.2

04-03-2008

Tsung 1.2.2 has been released

Вышла новая, улучшенная, версия тест-фреймворка Tsung

- Скачать

Простое приложение OTP с Mochiweb

04-03-2008

A Simple OTP Application

Небольшая статья, описывающая создание небольшого приложения OTP, представляющее собой небольшой вебсервер, раздающий статические файлы

Erlang raytracer

04-03-2008

Erlang Raytracer

Простой raytracer, написаный на Erlang'е. В планах автора - реальное ускорение производительности при запуске на нескольких машинах.

thx to Дмитрий Азараев за наводку

Lisp Flavoured Erlang

03-03-2008

LFE - Lisp Flavoured Erlang

Роберт Вирдинг выпустил Lisp Flavoured Erlang фронт-енд к синтаксису Лиспа для компилятора Эрланга.

Полученый код совместим с "нормальным" кодом на Эрланге. Большинство "фич" работает, но кое-что еще не сделано:

- интерпретатор (не?) обрабатывает рекурсивные letrecs, binaries, receive и try
- нет lisp shell

Как говорит Роберт Вирдинг, пока нет.

Семинар по функциональному программированию

01-03-2008

21 февраля в "Эрикссоне" состоялся семинар по функциональному программированию, на котором присутствовали такие люди, как
- Simon Peyton-Jones, Microsoft Research
- Satnam Singh, Microsoft Research
- John Hughes, Chalmers
- John Launchbury, Galois

Ulf Wiger выложил презентации каждого из участников:

- Simon Peyton-Jones: “Taming Effects - The Next Big Challenge”

- Satnam Singh: “Declarative Programming Techniques for Many-Core Architectures”

- John Hughes: “Testing with QuickCheck”

- Simon Peyton-Jones: “Composing Contracts - An Adventure in Financial Engineering”

- John Launchbury: “High-Assurance Software”

makefiles и Erlang

29-02-2008

[erlang-questions] Use of makefiles - and why we do

В рассылке некоторые упоминали различные системы сборки. Chandru упомянул систему, используемую в T-Mobile, а я так же предлагаю ознакомиться с кодом своей системы на GoogleCode, которую я представил на конференции в Лондоне.

Она еще не полна, в ней отсутствуют некоторые приложения, которые позволят ей работать "из коробки".

Хочется отметить, что erlang-t-build распределенная система сборки. Если система, на которой происходит сборка, многопроцессорная, то вы увидите, что нагрузка на CPU поднимется до 100%, а сама сборка проихойдет быстрее, чем на однопроцессорной системе.

Erlware: генерация документации

28-02-2008

http://erlware.org/

Если прилождение содержит документацию в edoc-формате, то эта документация будет автоматически сгенерирована и выложена в репозитории после загрузки приложения в репозиторий. То же относится и к информации по релизам ("control information")

Эта документация будет доступна в

Erlware -> Repository Applications
Erlware -> Repository Releases

на сайте http://erlang.org/

Простейший пул процессов

27-02-2008

Dead Simple Process Pooling

Статья о том, как организовать простейший пул процессов.

Пример использует модуль pool

Интервью с гуру CORBA Стивом Виноски

27-02-2008

Interview: CORBA Guru Steve Vinoski on REST, Web Services, and Erlang

Интервью затрагивает C++, CORBA, REST, но в конце упоминается и Erlang.

Видео, 25 минут

Practical Erlang Mini-Interview

25-02-2008

Practical Erlang Mini-Interview

Митни интервью с авторами книги Practical Erlang, которая готовится к выходу в O'Reilly

Ajax + Erlang

25-02-2008

HOWTO: Ajax request

Небольшой пример того, как можно использовать Ajax и Erlang (Yaws)

Erlang и Great Computer Language Shootout

25-02-2008

Erlang и Great Computer Language Shootout

Решение и ускорение одной из задач на Language sshootout

Использование parse_transform

22-02-2008

parse_transform - небольшая статья на русском

ejabberd 2.0.0

22-02-2008

Оптимизация Emacs+Erlang

21-02-2008

Customizing Emacs for Erlang

Кортенькая статья, описывающая, как оптимизировать erlang mode для Emacs

ссылка исправлена, thx Кирилл Заборский

ErlyMate больше развиваться не будет

20-02-2008

Discontinuing ErlyMate

Roberto Saccon сообщил, что он больше не будет развивать проект интеграции Erlang'a в TextMate

Erlang с точки зрения CEO

20-02-2008

Erlang – The CEO’s View

Могу ли я, как CEO, порекомендовать Erlang? Нет, но я рекомендую использовать систему приложений (an application system). Такая комбинация на данный момент поставляется только в одном варианте - Erlang, но я уверен, что и другие скоро последуют...

Раздача Erlang/OTP в торрентах

19-02-2008

http://www.erlang.org:6969

По этой ссылке расположен список доступных для скачивания торрентов.

Введение в Erlang FFI

18-02-2008

Erlang FFI - Introduction

Введение в создание linked_in драйверов для Эрланга

возможно это введение стоит перевести на русский?

autoconf

18-02-2008

Automatically generating Erlang/OTP .app and .rel files using GNU Autoconf

Короткая статья, описывающая, как можно использовать GNU Autoconf для (полу)автоматической генерации .app и .rel файлов

Home Subscriber Server

18-02-2008

http://code.google.com/p/hss/

Реализация Home Subscriber Server внутри IP Multimedia Subsystem (IMS) Core Network (CN).

GSM/UMTS Charging Gateway

18-02-2008

open-cgf

This project provides a 3GPP-compliant Charging Gateway Function (CGF) as a sink for SGSN/GGSN/etc streamed CDRs on the 3GPP Ga/Gz interface

Arc Challenge + ErlyWeb

18-02-2008

Yariv Sadan предложил небольшой хак для ErlyWeb'а, позволяющий решить Arc Challenge так же элегантно:

Seaside-Style Programming in ErlyWeb

Erlang + PayPal

18-02-2008

erlpay

Модуль, позволяющий подключиться к сервису PayPal "Website Payments Standard"

Использует код из mochiweb

Распределенная файловая система WalkenFS

13-02-2008

WalkenFS

Распределенная файловая система, написаная на Эрланге

Fragmentron - автоматизация Мнезии

13-02-2008

Fragmentron

Позволяет автоматически распределять данные по узлам, которые могут динамически добавляться в систему или исчезать из нее. Библиотека предназначена для работы в динамических средах типа Amazon EC2.

Используется в проекте WalkenFS

Erlang Fuse

13-02-2008

fuserl - Erlang bindings for FUSE

Позволяет создавать файловые системы на Эрланге, используется в проекте WalkenFS

Книга от O'Reilly

13-02-2008

Как уже было упомянуто, ходят слухи о возможной книге по Эрлангу от O'Reilly

Земля продолжает полниться слухами. Согласно Пату Айлеру (Pat Eyler), книга таки появится.

- Скорее всего название будет Practical Erlang (бок о бок с Practical Haskell)
- Авторы также преподают Эрланг
- Скоро появится вебсайт для книги
- Книга будет глубже, чем Pragmatic Erlang(хотя и не настолько обширная)

3D Engine на Эрланге

11-02-2008

Horizontal games

3D движок на Эрланге

Встраивание YAWS в свои приложения

09-02-2008

Embedded Applications with Yaws

Коротенькая статья, описывающая, как создать приложение, реализующее встроенный(embedded) yaws handler.

Erlang Challenge

08-02-2008

Erlang Challenge

Цель: Реализовать "продвинутую" параллелньную функцию map: функцию (F1), которая параллельно применяет другую функцию (F2) к каждому элементу (E) списка (L1) и потом собирает результаты в новый список (L2). Порядок элементов в L2 должен соответствовать порядку элементов в L1. Элементы списка L1 гарантированно неизменяемы, вне зависимости от того, что делает функция F2. Чтобы еще усложнить задачу, функция F1 также должна принимать список узлов из кластера (NL), на которые можно распределить вычисления. Каждое применение F2 к элементу из L1 должно происходить на случайном узле из NL, а результат должен отсылать обратно на узел (N), на котором была вызвана функция F1....

Динамическое изменение размера Mnesia

08-02-2008

Dynamically sizing a fragmented mnesia store

Статья описывает некоторые подходы к использованию Mnesia на разных нодах

OTP Base вытесняется Sinan'ом

08-02-2008

OTP Base (make-like система сборки приложений для Эрланга) временно "уходит в подполье".

Согласно сообщению автора, основной фокус будет на Sinan

Erlang Y-комбинатор

07-02-2008

Интересная ветка, обсуждающая способы реализации Y-комбинатора в Erlang'е

Erlang/OTP R12B-1

07-02-2008

Выпущен релиз R12B-1. Этот релиз устраняет некоторые баги предыдущего релиза.

Скачать релиз, как всегла, можно здесь: http://erlang.org/download.html

Замечания по релизу: http://erlang.org/download/otp_src_R12B-1.readme

Сервер приложений XMPP

04-02-2008

Introducing the XMPP application server: The Twitter example

Статья описывает, как использовать протокол XMPP и ejabberd для создания веб-приложения по примеру Twitter'a

Парсинг тектовых и двоичных файлов

04-02-2008

Parsing text and binary files with Erlang

Большая статья, описывающая работу с текстовыми и двоичными файлами.

Erlang - образ EC2

04-02-2008

Erlang EC2 Image Available

Идентификатор образа: ami-dd3fdab4

Образ собран поверх Ubuntu 7.10, стандартного дистрибутива R12B-0 и патча SSL через брэндмауэр.

Этот образ в дальнейшем планируется использовать для развития инфраструктуры viruerl. Подробнее о планах здесь: Thoughts on EC2 & virtuerl

Динамические переменные - хак

01-02-2008

Dynamic variables hack in Erlang

"Грязный" хак, позволяющий уменьшить количество передаваемых в функцию аргументов. Использует process dictionary.

Пример:

player_greeting() ->
"Hello, " ++ dynvar:fetch(player).

test() ->
Greeting = dynvar:with([{player, "Dr. Falken"}],
fun player_greeting/0),
Greeting.

Вызов test/0 даст "Hello, Dr. Falken"

Dryverl 0.1.3

31-01-2008

Новая версия Dryverl, иснтрумент, облегчающий создание байндингов Erlang-C.

В новой версии исправлены баги в кодогенерации (подробнее).

Книга "Hardcore Erlang" отменяется

31-01-2008

Joel Reymont сообщил, что его книга hardcore Erlang не будет опубликована.

По его словам, в Pragmatic Programmers решили найти другого эксперта по Эрлангу и вбе-приложениям

via http://weblog.hypotheticalabs.com/?p=201

Отладка с помощью Distel

29-01-2008

Distel = Emacs erlang-mode++

Bil Clementson описывает, как использовать дебаггер Distel для отладки.

via Debugging with Distel

TrapExit снова в строю

28-01-2008

TrapExit снова в строю.

За время его отсутствия на сайте появилось:

* erlangport, an Erlang port coded in python
* erltunnel, ap tunnel for TCP connections over http.
* neuron, a spiking neuron in Erlang
* eresye, an Erlang inference engine
* posregex, posix regular expression interface

Poker bots and state machines

26-01-2008

Poker bots and state machines

Joel Reymont описывает, как он использовал state machines для автоматического тестирование своего покер-сервера

Скринкаст - Erlang на Mac OS X

23-01-2008

facebook+ErlyWeb - как использовать concurrency

22-01-2008

How to Use Concurrency to Improve Response Time in ErlyWeb Facebook Apps

Стандартный способ решения проблем выглядит примерно так:

1) получаем запрос
2) что-то делаем (обычно операции с базой данных)
3) вызываем Facebook API для отсылки сообщений/обнорвления новостных лент и/или профиля
4) возвращаем ответ

Но пункт 3) довольно долог, так как он вовлекает долгий обмен синхронными сообщениями с серверами Facebook'а

Поэтому лучше сделать так:

1) получаем запрос
2) что-то делаем (обычно операции с базой данных)
spawn(fun() ->
  3) вызываем API Facebook'а
end)
4) возвращаем ответ

Единственная проблема в таком решении - если произойдет ошибка, нет возмоности уведомить об этом посетителя. С другой стороны, мы можем ошибку записать в лог и поставить в очередь...

Презентация

19-01-2008

Free Session: In-the-Brain of Francesco Cesarini on Erlang for 5 Nines

Видео. 1 час 48 минут. История, примеры, продукты, ответы на вопросы.

Интересный момент: обещана книга про Erlang от O'Reilly в третьем квартале 2008-го года

Exception Conference #07

18-01-2008

Exception Conference #07. Киев

15 марта 2008 года в Киеве состоится Exception Conference #07.
Тема конференции - динамические языки программирования.
А именно: Python, Ruby, SmallTalk, Haskell, Groovy и другие.

Внимание! Ищутся докладчики.

Предлагаемые темы:
* GUI
* Web
* Сетевые приложения
* Разработка игр
* Системы контроля версий
* Базы данных
* Рефакторинг, TDD, XP, паттерны, ООП
* ORM
* Метапрограммирование
* Параллельное программирование
* Администрирование, автоматизация бизнеса
* VoIP

Думаю, самое время представить Erlang не ожидающей такого подвоха програмерской публике

Новый сайт на Эрланге

18-01-2008

Triggit

Позволяет с легкостью вставлять динамический контент, не заморачиваясь с HTML, FTP или чем-либо еще.

Описание проекта

virtuerl

18-01-2008

virtuerl

Библиотека, облегчающая работу с grid computing. На данный момент предоставляет обертку для Amazon Elastic Compute Cloud

Пример работы:

Keys = aws_keys:new("YourIdentifier", "YourSecretKey"),
case aws_instance:run(Keys, "gsg-keypair", "ami-0022c769") of
{ok, [H|_T]} ->
case aws_instance:terminate(Keys, proplists:get_value(instanceId, H)) of
{ok, _Result} ->
io:format("Instance terminated~n");
{error, Error} ->
io:format("Oops! Instance still running: ~p~n", [Error])
end;
{error, Error} ->
io:format("Error: ~p~n", [Error]),
io:format("Oops! Running instance failed!~n")
end.

Код проекта: http://code.google.com/p/virtuerl/

Using Erlang In A Web Start-Up

18-01-2008

Using Erlang In A Web Start-Up

Whitepaper, описывающие преимущества Эрланга в качестве языка для веб-разработок с точки зрения начинающих компаний.

ErlyWeb Fan Club

18-01-2008

ErlyWeb Fan Club на Facebook.com

Присоединяйтесь!

CouchDB - Apache License

16-01-2008

CouchDB переведена на Apache License 2.0

Integrating Java and Erlang

16-01-2008

Integrating Java and Erlang

В статье рассказывается о том, как создать небольшой сервер на Эрланге (который умеет складывать числа) и как создать Java node и обращаться к этому серверу из джавовского кода используя jinterface.

Уровень: относительно Эрланга чуть выше начального.

via: Lazy Cjow Rhrr

ErlyDTL - the Django template language in Erlang

16-01-2008

http://www.rsaccon.com/2008/01/erlydtl-django-template-language-in.html

Существует уже несколько шаблонных языков для Эрланга:

- ErlTL(используется в ErlyWeb)
- Sgte(используется в Erlware)
- Seethorugh (хотя проект давно не обновлялся)
- ErlyDTL на основе Django Template Language

ErlyDTL не дает пользователю доступа к Erlang'у, компилируется в .beam-файлы, пре-рендерит максимум возможного во время компиляции и поддерживает следующую функциональность:
- наследование шаблонов
- назначение переменных во время компиляции
- HTML-escaping
- большое количество тэгов и фильтров Django

Еще не весь функционал реалзован, но попробовать ErlyDTL уже можно:
- демонстрация и тестовые шаблоны
- файлы, получающиеся после рендера

Erlang IDE приближается к версии 1.0

11-01-2008

http://www.infoq.com/news/2008/01/erlang-ide

По ссылке - интервью Влада Думитреску об ErlIDE

Как обойтись без наследования

11-01-2008

Начинающим будет интересно это обсуждение на форуме:

Как обойтись без наследования?

Erlware bootstrappers

11-01-2008

Новые бутстрапперы Erlware для Mac OS X 10.5 Leopard и Linux 32/64 bit. Новые бутсрапперы содержат и новую версию Faxien:

- http://code.google.com/p/faxien

Описание того, как можно создать бутстраппер для любимой архитектуры, можно найти здесь: http://code.google.com/p/faxien/wiki/BuildingBootstrapperUnix

Быстрый файловый ввод-вывод в Erlang

07-01-2008

Быстрый файловый ввод-вывод в Erlang

Думаете, такого не бывает, да? :) Сейчас мы увидим, что будет, если полагаться на сильные стороны платформы, а не на слабые :). Мы сделаем самое быстрое в мире на момент публикации построчное чтение текстовых файлов для Эрланга.

Остальное - по ссылке

RBridge 0.1

07-01-2008

- rbridge 0.1 Released
- на rubyforge

RBridge позволяет использовать Erlang в программах на Руби.

cron.erl

07-01-2008

cron.erl

Простой модуль, позволяющий добавлять в программы cron-like функциональность

Сборка мусора в Эрланге

07-01-2008

Garbage Collection in Erlang

Статья описывает детали реализации сборки мусора в Эрланге. Также описываются некоторые моменты, позволяющие использовать особенности сборщика муора более эффективно (например, spawn_opt)

CouchDB + IBM

03-01-2008

http://damienkatz.net/2008/01/new_gig.html

Damien Katz, создатель CouchDB, получил работу в IBM. Его основным полем дятельности будет... CouchDB!

Erlware - новый сервер

02-01-2008

Сайт Erlware.org перебрался на новый сервер.

Изменения в настройках git:

git clone http://git.erlware.org/.git

Разработчики, обладающие правами коммита, могут продвигать изменения (push changes) так:

git push ssh://git.erlware.org/usr/local/www/git/.git

С Новым Годом!

29-12-2007

Проект "Erlang по-русски" поздравляет вас всех с Новым Годом!

Новости начнут обновляться не скоро :)

Erlang и Javascript

29-12-2007

Roberto Saccon работает над компилятором Javascript -> Erlang, что могло бы позволить выполнять код, написаный на Javascript'е в конектсе VM Эрланга.

Тем времененм Alex Graveley написал Er.js, библиотеку, позволяющую использовать concurreency в стиле Эрланга, но в Яваскрипте, да еще и с Эрланговским синтаксисом!

Так как Javascript не поддерживает многопоточность, было использовано много трюков, включая асинхронные таймеры, и многое другое.

© http://www.rsaccon.com/2007/12/erlang-on-javascript.html

ErlyWeb 0.7

27-12-2007

ErlyWeb 0.7

ErlyWeb достиг версии 0.7

- Changelog
- Скачать

ErlyWeb видео и слайды

27-12-2007

http://www.bayfp.org/blog/2007/12/25/yariv-sadan-on-erlyweb-video-and-slides/

Презентация, представленная Яривом Саданом на собрании Bay Area Functional Programmers

erlware emacs mode

27-12-2007

Erlang в России

26-12-2007

Google group: http://groups.google.com/group/erlang-russian/

Jabber-конференция: erlang@conference.jabber.ru

Подписка на рассылку: http://lists.jabber.ru/mailman/listinfo/erlang-russian

erlyweb and phased_vars IRC tutorial transcript

25-12-2007

erlyweb and phased_vars IRC tutorial transcript

Короткий неформальный туториал по pahsed_vars в erlyweb - транскрипт из IRC

ejabberd 2.0.0 beta1

25-12-2007

Вышла beta 1 версии 2.0.0 проекта ejabberd

- Release notes
- Changelog
- Скачать

ErlSDB 0.1

25-12-2007

Библиотека для рабботы с Amazon SimpleDB

Доступна здесь: http://code.google.com/p/erlsdb/

Как замерять время выполнения функций

24-12-2007

Measuring Function Execution Time

Статья описывает, как правильно использовать timer:tc/3 для измерения скорости выполнения функций (и из коммандной строки тоже)

Erlang + DTrace

24-12-2007

Tim Becker и D. Bulmer инициировали проект по имплементации Erlang DTrace.

Код расположен на http://www.opensolaris.org/. Более того, было предложено внести этот проект в список проектов OpenSolaris (голосование здесь)

Bulmer также приводит дополнительные аргументы в пользу проекта Erlang DTrace

User Contributions

21-12-2007

На сайте trapecit.org естьзамечательный раздел user contributions

Там много есть энное количество вкусных разностей и разных вкусностей. Изредка в него надо заглядывать:

- ErlTunnel, an HTTP tunnel written in Erlang
- A GUI to Mnesia and ets
- libc FILE interface
- Parallel list processing module
- An XML-RPC client/server library

и так далее...

Все об Erlang GS

21-12-2007

Erlang GS Explorations

Практически все, что вы хотели знать о модуле GS в Эрланге.

Правда, согласно этой информации, модуль GS больше развиваться не будет

Получение абстрактной формы функции

21-12-2007

http://forum.trapexit.org/mailinglists/viewtopic.php?t=11570

Имея на руках исходник модуля и его .beam, скомпилированый с debug_info, можно получить абстрактную форму функций, находящихся в этом модуле:

Предположим, у нас есть такой модуль:


-module(m).

-export([f/2]).

f(N, X) ->
if N==1; N==2 ->
element(N, {fun() ->
X + 1
end,
...

wxErlang

20-12-2007

Новый бета-релиз: http://wxerlang.sf.net/

Требования: R12B и wxWidgets-2.8 (уже статически прилинковано в версиях для Mac и Windows)

Работает под Windows, Solaris-10, Mac и Linux

Mnesia + большое количество апдейтов

19-12-2007

Тесты mnesia (в задаче обработки котировок)

Как оказалось, mnesia не справляется с большым количеством обновлений

Распечатка чисел с плавающей запятой

18-12-2007

Printing floats with Erlang

В Эрланге невозможно добиться правильного вывода чисел с плаваюзей запятой с помощью стандартных средств.

На помощь приходит модуль mochinum из MochiWeb

Использование MochiWeb skeleton

18-12-2007

Using the mochiweb project skeleton

Краткое описание того, как надо использовать костяк приложения, поставляемый с MochiWeb.

Amazon SimpleDB + Java + Erlang

18-12-2007

http://weblog.plexobject.com/?p=1594

Статья описывает, как подключится к Amazon SimpleDB, используя Java и Erlang

Comet и Erlang

15-12-2007

Getting started with Comet on Erlang

Описание возможных подходов к решению, а также ссылка на проект ErlyComet (построенного поверх MochiWeb)

Amazon + Erlang

14-12-2007

http://www.satine.org/archives/2007/12/13/amazon-simpledb/

По слухам, Amazon SimpleDB использует Эрланг

ErlyWeb + Emacs

10-12-2007

Erlan automake

10-12-2007

Erlang automake project

Проект, направленый на облегчение процесса сборки и компиляции модулей Эрланга

Ulf Wiger про Эрланг

06-12-2007

Ulf Wiger про Эрланг

Запись Ульфа Вигера в comp.lang.functional, описывающая 7 основных пунктов concurrency в стиле Эрланга.

Сама ветка обсуждает синхронный и асинхронный обмен сообщениями, за и против выборочного приема сообщений (selective receive) и различие способов передачи сообщений в Эрланге и Хаскеле

Erlang на Amazon EC2

06-12-2007

Starting cluster of Erlang nodes on EC2

Статья показывает, как запустить кластер из нод Эрланга на Amazon EC2

CouchDB: Туториал

06-12-2007

http://jan.prima.de/~jan/plok/archives/108-Programming-CouchDB-with-Javascript.html

Туториал о том, как создать простейшее ToDo-приложение, используя CouchDB и JavaScript

Erlang 5.6/OTP R12B

05-12-2007

Стала доступна к скачиванию версия Erlang 5.6/OTP R12B

Помимо прочих в этой версии:
- поддержка SMP на Windows. Поддержка SMP автоматически включается на системах, где доступно более одного виртуальных или физических процессоров
- Bitstings и binary comprehensions
- Test server
- Percept - erlang concurrency profiling tool

Прочее можно прочитать в описании релиза

Также рекомендуется к прочтению Efficiency guide, в котором произошли изменения (особенно в разделах, касающихся binaries и lists)

PARE - PARallel Execution in Erlang

04-12-2007

PARE - PARallel Execution in Erlang

Считается, что Erlang позволяет писать распределенный код, не заботясь о том, что надо создавать потоки, синхронизировать их и т.п.

Возьмем следующий код:


A = a(),
b(),
c().

Для того, чтобы сделать его распределенным, надо написать:


PidThis = self(),
PidA = spawn_link(fun() -> PidThis ! {self(), a()} end),
spawn_link(fun() -> b() end),
PidC = spawn_link(fun() -> PidThis ! {self(), c()} end),
A = receive {PidA, ResultA} -> ResultA end,
receive {PidC, ResultC} -> ResultC end.

Какой кошмар... А ведь хотелось бы написать что-то в следующем роде:


parallel_execution_3,
A = a(),
b(),
c().

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

Двоичные деревья в Эрланге

03-12-2007

http://mark.aufflick.com/blog/2007/11/30/trees-in-erlang

Реализация двоичных деревьев в Эрланге

ROSEN - RObotic Simulation Erlang eNgine

23-11-2007

http://rosen.sourceforge.net/

Движок, написаный на Эрланге, цель которого - дать пользователю возможность создавать простые и сложные 3D-объекты, манипулировать ими, а также управлять ими (задавать скорости, вращение и т.п.).

Проект начат университетом Катании.

Проект использует ESDL

Эрланг и строковые лямбды

22-11-2007

Эрланг и строковые лямбды

Отталкиваясь от библиотеки функциональный Яваскрипт, автор предлагает набор похожих утилит для Эрланга.

Примеры (в комментариях приведен эквивалентный код):


%% (fun(X) -> X * 2 end)(6)
(utils:lambda("X * 2"))(6)

%% lists:map(fun(X) -> X * X end, [1,2,3]).
utils:map("X*X", [1,2,3]).

Подстановка параметра унарной функции
(utils:lambda("_*5"))(8).
-> 40

Явные (explicit) параметры
(utils:lambda("X Y->X+2*Y"))(1,4).
-> 9

Неявные (implicit) параметры
(utils:lambda("/2"))(6)
-> 3

utils:lambda("10/"))(2)
-> 5

(utils:lambda("/"))(12,6)
-> 2

Создание цепочек для карринга
%% Оператор -> можно использовать для создания
%% каррированых функций
((utils:lambda("X->Y->X+2*Y"))(1))(4).
-> 9
%% Или отложеных вычислений
Fun=(utils:lambda("X->Y->X+2*Y"))(1).
-> #Fun
Fun(4).
-> 9

Функции высшего порядка
%% compose позволяет создавать композицию функций
%% (в обратном порядке)
(utils:compose("+1", "*2"))(1).
-> 3

utils:map("+1", utils:map("*2", [1,2,3])).
-> [3,5,7]

lists:map(utils:compose(["+1", "*2"]), [1,2,3]).
-> [3,5,7]

Катаморфизмы
%% Реализация lists:reverse с использованием отложенного вызова

Reverse = utils:lambda("utils:foldl("[E] ++ S", [], _)").
-> #Fun
Reverse([1,2,3,4]).
->...

Erlang + Textmate

21-11-2007

http://www.rsaccon.com/2007/11/easy-erlang-compiling-with-textmate.html

Модуль для компиляции Эрлнага из Textmate и screencast, показывающий его работу

Problem K на Эрланг: решение №2, последнее + вывод

20-11-2007

Digraph + Сеть

19-11-2007

http://feeds.feedburner.com/~r/planet_erlang/~3/186934125/click.phdo

Использование модуля digraph для определения статуса серверов в сети

Слайды Erlang User Conference 2007

17-11-2007

http://www.erlang.se/euc/07/

Программа и слайды EUC 2007

gen_server для регулярных выражений

17-11-2007

http://easyerl.blogspot.com/2007/11/genserver-for-mass-regexp-computing.html

В статье описывается использование библиотеки регулярных выражений LibTre для массивной обработки регулярных выражений

Обновление JSON-библиотеки RFC4627

17-11-2007

Благодаря Сэму Руби (Sam Ruby), который провел исследование по поддержке Юникода в различных реализациях JSON'а было обнаружено, что erlang-rfc4627 неправильно кодирует некоторые символы.

Более детальное описание проблемы здесь: http://www.lshift.net/blog/2007/11/16/astral-plane-characters-in-erlang-jsonrfc4627-implementation

Обновленную версию можно получить так:


darcs get http://www.lshift.net/~tonyg/erlang-rfc4627/

CouchDB 0.7.0

17-11-2007

http://code.google.com/p/couchdb/downloads/list

Вышла версия 0.7 базы данных CouchDB. В новой версии:

- REST API с использованием JSON в качестве основного формата данных
- Движок для view на основе Javascript'а (используется Spidermonkey от Mozilla)
- система сборки на основе GNU Autotools
- встроенный интерфейс для администрации базы
- экспериментальный полнотекстовый поиск на основе Lucene
- различные мелкие изменения, багфиксы и проч.

Тесты быстродействия Эрланга

15-11-2007

Функциональные веб-библиотеки

15-11-2007

http://groups.google.com/group/functional-web-frameworks

Группа, предназначеная для обсуждения и сравнения различных веб-библиотек и фреймворков, написаных с использованием функциональных языков программирования

Service Pack I

14-11-2007

Joe Armstrong предложил интересную идею: создать набор скриптов/модулей/приложений, которые улучшили бы работу с Erlang/OTP, не затрагивая саму систему. Он назвал эту идею "Service Pack I".

Среди предложений:

- Улучшить сообщения об ошибках
- Поэкспериментировать с наследованием
- Ускорить запуск Эрланга
- Использование комментариев @spec для динамической проверки ти