Как стать автором
Обновить
0

Erlang/OTP *

Функциональный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Ускоряем работу Erlang системы без замедления разработки

Время на прочтение2 мин
Количество просмотров2.2K
Недавно появилась возможность использовать С для написания модулей Erlang систем (это по-моему удобнее любого из предложенных здесь методов). Возможно вы не знали о возможности использовать Haskell в связке с Erlang. Haskell очевидно не панацея и действительно критические участки кода вероятно всё равно придётся переписывать на С, но Haskell предлагает строгую типизацию и сокращение обьёма кода по сравнению с С. Я думаю что проще переписывать код с Erlang на Haskell чем на С, потому что оба языка функциоанльные. Haskell быстрее Erlang благодаря статической типизации и умной системе выведения типов. Предлагаю вашему вниманию вольный перевод статьи о Haskell/Erlang-FFI.
Читать дальше →
Всего голосов 29: ↑23 и ↓6+17
Комментарии7

Erlang/OTP R13B03

Время на прочтение1 мин
Количество просмотров900
Вышел долгожданный релиз Erlang/OTP R13B03

Главное в релизе:
Native Implemented Functions (NIFS) (см. новость, пример использования)
— основная ветка исходников Эрланга будет дублироваться на GitHub'е

А так же:
— Изменился формат документации (исчезли фреймы, содержимое теперь должно нормально индексироваться поисковиками)



via erlang.dmitriid.com

Всего голосов 13: ↑13 и ↓0+13
Комментарии8

Erlang User Conference 2009 in Stockholm, Sweden

Время на прочтение1 мин
Количество просмотров913
12 ноября 2009 года состоялась 15 Международная Конференция разработчиков Erlang.
Место проведения — «Астория», Nybrogatan 15, 114 39 Стокгольм (Швеция).
Вашему вниманию хотелось бы представить фото и презентации.

Erlang User Conference 2009 in Stockholm

All Photos
All Talks

Далее под хабракат-ом представлены список выступлений и ссылки на презентации.
Читать дальше →
Всего голосов 27: ↑22 и ↓5+17
Комментарии11

Истории

RabbitMQ: Введение в AMQP

Время на прочтение2 мин
Количество просмотров57K
Построение больших и сложных систем всегда связано с решением проблем обмена данными между различными их узлами. Дополнительные трудности вносят такие факторы, как требования к отказоустойчивости, географическое разнесение подсистем, наличие узлов, взаимодействующих сразу с несколькими другими. Не всегда удобно использовать пресловутую систему клиент-сервер, да и архитектура точка-точка может оказаться не самым подходящим представлением связей.

Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии15

ASN.1 и Erlang

Время на прочтение2 мин
Количество просмотров5.9K
В давние-предавние времёна, когда компьютеры были большими, а инженеры дальновидными, когда дух маркетологов был неведом рыцарям битов и терминалов, в одном царстве-государстве, у Калинового моста, собрались эти бравые мужи и решили придумать способ представления прозвольных структур данных для передачи их по сети, чтобы их прекрасные дамы могли общаться между собою по телефону и не отвлекали их от решения проблем насущных. Так как маркетологов в тех краях было мало, способ получился изящным и потребляющим мало ресурсов на кодирование/декодирование. И нарекли они его ASN.1, или коротко — X.208.
Что же случилось дальше?
Всего голосов 30: ↑29 и ↓1+28
Комментарии66

Введение в gen_fsm: Банкомат Erlybank

Время на прочтение9 мин
Количество просмотров4.9K
Предыстория
Введение в Open Telecom Platform/Открытую Телекомуникационную Платформу(OTP/ОТП)
Введение в gen_server: «Erlybank»

Это вторая статья из серии «Введение в OTP». Рекомендую вам прочитать первую статью, в которой говорится о gen_server и закладываются основы нашей банковской системы перед тем, как читать эту. Если вы быстро схватываете, можете посмотреть завершенную версию сервера и двигаться дальше.

Сценарий: Мы поставили ErlyBank сервер заказчикам, и они остались очень довольны. Но на дворе 21 век, и они хотят также безопасный и простой в использовании банкомат, поэтому они попросили нас расширить наш сервер и создать программное обеспечение для банкомата. Пользовательские аккаунты должны быть защищены 4-цифровым ПИН-кодом. В банкомате можно залогиниться с помощью ранее созданного аккаунта, сделать депозит или снять деньги со счета. Делать красивый интерфейс не требуется, этим занимаются другие люди.

Цель: Сначала мы расширим сервер, добавив поддержку ПИН-кода для аккаунтов и авторизации через ПИН-код. Потом мы будем использовать gen_fsm чтобы создать бэкенд банкомата. Проверка данных будет проводиться на стороне сервера.
Читать дальше →
Всего голосов 31: ↑28 и ↓3+25
Комментарии4

Введение в gen_server: «Erlybank»

Время на прочтение8 мин
Количество просмотров12K
Предыстория
Введение в Open Telecom Platform/Открытую Телекомуникационную Платформу(OTP/ОТП)

Это первая статья из цикла статей, описывающих все концепции, которые относятся к Erlang/OTP. Чтобы вы могли найти все эти статьи в дальнейшем, они маркируются специальным тегом: Otp introduction(здесь я сделал ссылку на теги хабра). Как обещано во введении в OTP, мы будем создавать сервер, обслуживающий фейковые банковские аккаунты людей в «Erlybank» (да, я люблю глупые имена).

Сценарий: ErlyBank начинает свою деятельность, и руководителям необходимо встать с правильной ноги, создав масштабируемую систему для управления банковскими аккаунтами их важной базы покупателей. Услышав про мощь Erlang, они наняли нас сделать это! Но чтобы посмотреть, на что мы годны, они сначала хотят увидеть простенький сервер, умеющий создавать и удалять аккаунты, делать депозит и изъятие денег. Заказчики хотят только прототип, а не что-то, что они смогут запустить в производство.

Цель: мы создадим простой сервер и клиент, используя gen_server. Так как это просто прототип, аккаунты будут храниться в памяти и идентифицироваться по имени. Никакой другой информации для создания аккаунта будет не нужно. И конечно же, мы сделаем проверку для операций депозита и изъятия денег.

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

Если вы готовы, жмите «Читать дальше», чтобы начать! (Если вы уже не читаете всю статью целиком:) )

Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии28

Введение в Open Telecom Platform/Открытую Телекомуникационную Платформу(OTP/ОТП)

Время на прочтение3 мин
Количество просмотров7.1K
Предыстория

Множество людей ссылается на Erlang как «Erlang/OTP». OTP значает Открытую Телекомуникационную Платформу и представляет из себя не больше, не меньше, набор библиотек, которые поставляются вместе с Erlang. Они состоят из Erlang-интерфейсов(или поведений, behaviours англ.), которые необходимы при написании серверов, конечных автоматов, менеджеров(или диспетчеров) событий. Но это еще не все, OTP также включает интерфейс Application, который позволяет программистам запаковывать их код в одно «приложение». А Supervisor интерфейс дает программистам возможность создавать иерархическое дерево процессов, где в случае, если процесс умрет, то он будет перезапущен.

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

Почему мне следует узнать об Erlang/OTP?


Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии13

Перевод цикла статей об Erlang автора Mitchell Hashimoto с сайта http://spawnlink.com

Время на прочтение1 мин
Количество просмотров2.7K
В этом блоге я буду публиковать перевод занимательных статей о написании с нуля приложения на Erlang.
В число рассматриваемых тем будут входить: gen_* behaviors, Supervisor Behavior, Application Behavior и другие.

Оригиналы статей лежат по адресу: http://spawnlink.com

Начало: Введение в Open Telecom Platform/Открытую Телекомуникационную Платформу(OTP/ОТП)

UPD. Теперь все статьи находятся в Erlang/OTP
Всего голосов 5: ↑5 и ↓0+5
Комментарии2

Элементарные типы и операции над ними. Часть I: типы данных, размер, ограничение.

Время на прочтение15 мин
Количество просмотров15K
Строительными кирпичиками любого языка является элементарные типы данных с которыми мы можем работать. Зная их, мы всегда понимаем, что у нас хранится в той или иной переменной, что возвращает та или иная функция. Какие действия мы можем совершить над нашими данными. Это база. Поэтому именно этому я и хотел уделить внимание в данной статье в общем, а так же примерам работы с бинарными данными в частности.

Материал в первую очередь адресую тем кто только начал или хочет начать писать на Erlang-e. Но я постарался максимально полно охватить данный аспект языка и поэтому надеюсь, что написанное будет полезно и более продвинутой аудитории.

Первоначальный материал пришлось разделить на три части, в данной будут рассмотрены базовые типы языка, способы создания базовых типов и потребляемые ресурсы на каждый из типов.
Читать дальше →
Всего голосов 45: ↑43 и ↓2+41
Комментарии69

Erlang в Рисоваське, часть 2 — ответы на вопросы

Время на прочтение8 мин
Количество просмотров14K
Данная статья является продолжением цикла статей про язык программирования Эрланг/Erlang и его использование в нашем проекте Рисоваська. В первую очередь я хочу ответить на вопросы заданные в комментариях к первой статье, а вопросов было задано много. Итак продолжим:

Установка Erlang под Windows


Установить Erlang достаточно просто. Сначала скачиваем дистрибутив с официального сайта. Нам нужна последняя на данный момент версия R12B-5, колонка Windows binary (incl. documentation). После инсталляции в меня «Пуск» — «Все программы» появится пункт Erlang OTP R12B и в нем подпункт «Erlang». Если его выбрать, то запуститься безымянная нода вместе с оболочкой (shell) в которой уже можно выполнять эрланговский код, в том числе из моих примеров. Я буду придерживаться названия «нода», так как официального названия в русском языке пока не устоялось, хотя слово «node» и переводиться как «узел».

Вот ссылки про установку Эрланга под Mac OS X и Линукс (на английском).
Читать дальше →
Всего голосов 47: ↑43 и ↓4+39
Комментарии41

Erlang в Рисоваське, часть 1 — обзор языка

Время на прочтение6 мин
Количество просмотров10K
В этой и последующих статьях (часть 2) я хочу рассказать про язык программирования Erlang/Эрланг, его использование в нашем проекте Рисоваська, а также какие приложения и готовые модули (большинство которых тоже написаны на Эрланге) мы использовали в серверной части.

Поискав на Хабре по теме Erlang/Эрланг, понял, что тема освещена мало, есть всего пара действительно хороших статей на тему языка (например, отличная статья от создателя языка в переводе alex_blank What's all this fuss about Erlang? написанная понятным, доходчивым языком). Именно поэтому хочется остановиться сначала на самом языке и его отличиях от традиционных языков.
Читать дальше →
Всего голосов 75: ↑71 и ↓4+67
Комментарии68

Ближайшие события

На передовой дизайна виртуальных машин

Время на прочтение4 мин
Количество просмотров4.4K
Пока готовится первая статья в обучающей серии об языке Эрланг, решил сделать перевод одного интересного блог-поста. Пост об развитии виртуальной машины Эрланг и целях, которые пытаются достичь его авторы.

Читать дальше →
Всего голосов 44: ↑40 и ↓4+36
Комментарии51

Erlang. Что это, зачем, как и для кого.

Время на прочтение2 мин
Количество просмотров77K
Статья короткая, если понравиться, попробую осветить этот язык программирования подробнее.

Что



Erlang, это функциональный язык программирования с динамической типизацией, главной особенностью которого является программирование на уровне отдельных процессов(почти аналог threads в других ЯП), коммуникация между которыми реализуется с помощью MPI(Message Passing Interface).

Читать дальше →
Всего голосов 81: ↑70 и ↓11+59
Комментарии95

Экстренная реанимация epmd

Время на прочтение3 мин
Количество просмотров9K
(Проблема, по всей видимости, чрезвычайно экзотическая, но в плане «как оно внутри устроено» достаточно познавательная.)

Вот, допустим, работает у вас приложение, написанное на Эрланге (ну, скажем, тот же ejabberd). Давно работает, хорошо работает, но в один прекрасный день вы пытаетесь запустить управляющий скрипт (ejabberdctl, соответственно), а он вам выдает «nodedown» или еще что-нибудь страшное в этом духе, мол, не отзывается никто. При этом само приложение прекрасно отзывается на все клиентские запросы и слыхом не слыхивало о том, что оно down. По внезапному наитию вы запускаете epmd -names и — о, ужас! — получаете пустой список.

Программы на Эрланге используют для связи между собой нотацию node@host, физически же каждый узел (читай — системный процесс) открывает для этого случайный высокий порт. Задача сервиса epmd — связать между собой логическую адресацию по имени и физическую адресацию по номеру порта. Своего рода аналог DNS, с той разницей, что без реестра epmd кластер на Эрланге разваливается на кучку отдельных глухонемых узлов — что у нас только что по какой-то загадочной причине и произошло. Можно, конечно, начать искать виновных, но сначала все-таки неплохо бы поднять систему на место.

Что в такой ситуации делать? Можно, конечно, просто насильно перезапустить приложение, но, с одной стороны, клиенты отвалятся, с другой, такой красивый uptime жалко… Вот если б можно было как-нибудь восстановить реестр на живой системе, а?..

Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии12

What's all this fuss about Erlang?

Время на прочтение5 мин
Количество просмотров5.8K
by Joe Armstrong

Никто не в состоянии предсказывать будущее — но я сделаю несколько обоснованных предположений.

Предположим, что Intel правы, что их проект Keifer выстрелит. Если это случится, то 32-х ядерные процессоры появятся на рынке не позже 2009-2010.

Ничего удивительного здесь нет. Sun уже продает восьмиядерные Niagara с 4-мя «hyperthreads» на каждом ядре, что эквивалентно 32-ум ядрам.

Это разработка, которая осчастливит программистов на Erlang. Они 20 лет ждали этого события, и теперь настало время расплаты.

Хорошие новости для Erlang-программистов:

На N-ядерном процессоре ваша программа будет работать в N раз быстрее.

Читать дальше →
Всего голосов 77: ↑73 и ↓4+69
Комментарии271
12 ...
11
Изменить настройки темы

Вклад авторов