Я недавно открыл для себя Erlang и сейчас прорабатываю пару руководств. К настоящему времени я с нетерпением жду возможности реализовать что-нибудь в качестве хобби-проекта. Меня не особо интересует еще один чат-сервер. Я хотел бы написать что-нибудь более интересное (да, я знаю, что это довольно расплывчатый термин), с которым также можно работать, так что я могу закончить его в свободное время.
Какие-либо предложения?
Обновлено: проект предпочтительно должен подчеркивать сильные стороны Erlang (параллелизм, распределенный).





Это не совсем ответ на ваш вопрос, но если вы ищете интересный бесплатный проект с открытым исходным кодом, написанный на Erlang, вам обязательно стоит попробовать CouchDB. С веб-сайта:
Apache CouchDB is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API. Among other features, it provides robust, incremental replication with bi-directional conflict detection and resolution, and is queryable and indexable using a table-oriented view engine with JavaScript acting as the default view definition language.
CouchDB is written in Erlang, but can be easily accessed from any environment that provides means to make HTTP requests. There are a multitude of third-party client libraries that make this even easier for a variety of programming languages and environments.
В CouchDB сайт есть более подробная информация. Удачного кодирования!
Проект Эйлер, точно.
Конечно, это хорошие задачи, но вы можете решить их на любом языке, и большинство из них подойдет лучше, чем Erlang. Что касается Erlang, то вам нужны проблемы, которые требуют / используют распределенное решение, потому что в этом заключается сила Erlang. AFAIK, Project Euler [не обязательно] это так.
Правда. Все еще было приятно иметь напоминание о том, что проект уже существует, и мне нужно немного поработать мозгами. :)
Что ж, реализация распределенной версии Eratosthenes Sieve должна быть интересной.
@JasperE: Опишите, как правильно распространять Сито Эратосфена?
Некоторые вещи из моего обширного списка ToDo, которые были бы хорошими учебными упражнениями и полезными для сообщества erlang в целом:
Профилируйте все доступные хранилища ключей / значений:
напишите новую подпрограмму io_lib: format, которая использует именованные параметры:
Расширить erl -make (make.erl)
Для чего-нибудь для себя подумайте о написании простого сервера; что-то, что, например, обслуживает запросы даты / времени или - что немного интереснее - демон HTTP, обслуживающий только статический контент.
Лучшая часть Erlang - это то, как он обрабатывает параллелизм; упражняйтесь в этом.
Я ищу именно такой проект. Что-то, что подчеркивает силу Erlang (параллелизм, распределенный).
«Programming Erlang» Джо Армстронга включает примеры того, как программировать такие серверы. Настоятельно рекомендуется.
Система индексации / поиска файлов. Это было интро-проектом, но я переключился на что-то другое.
После того, как вы его заработали, вы можете переместить индексы в мнезию, а затем распределить это по другим узлам, чтобы получить общий сетевой индекс.
найдите то, чего нет в Erlang, что вам нравится. Я сделал это с помощью etap https://github.com/ngerakines/etap/. Теперь ник взял на себя управление, и он используется внутри игр EA. Создавать это было весело, и, как и предыдущий плакат, это было что-то реальное, поэтому, работая над этим, я научился решать проблемы реального мира.
Создайте распределенную систему, которая выполняет поиск в лентах Twitter в режиме реального времени и позволяет любому выполнять поиск из веб-интерфейса.
Создайте распределенную файловую систему. Внедрите распределенные деревья B * или B + Trees в качестве основы этой файловой системы. Сделайте это на erlang.
Создайте распределенное хранилище значений ключей поверх распределенной файловой системы, созданной на шаге 2.
Создайте распределенный веб-индекс (для использования распределенной поисковой системой) поверх хранилища значений ключа.
Создайте распределенный компоновщик. Расширенная автоматизация сборки предлагает удаленную обработку агента для распределенные сборки и / или распределенную обработку.
Создайте серверную часть MMORPG, которая полагается на распределенное хранилище состояния игры / игрока и распределенную обработку запросов пользователей.
Хорошие идеи. Я наткнулся на это некоторое время назад и хотел решить некоторые из этих проблем, но позже забыл об этом. Итак, спасибо, что напомнили мне :)