Изучение Erlang? поток speedbump, общие, небольшие проблемы

Некоторые браузеры не позволяют подключаться к незащищенным веб-сокетам. Вам нужно протестировать с включенным SSL / TLS и "wss: // localhost: 8080" в качестве вашего соединения.

10
задан 2 revs, 2 users 88% 25 February 2009 в 17:07
поделиться

7 ответов

Интеграция его в msvc 6, таким образом, я мог использовать редактора и видеть результаты в окне вывода.

Я создал инструмент, с

команда - соединяет каналом к erlc

аргументы - +debug_info $ (Имя файла) $ (FileExt)

Первоначальный каталог - $ (fileDir)

Проверенное окно вывода использования.

2
ответ дан 4 December 2019 в 01:03
поделиться
  • Обучение просмотреть стандартную документацию

    После того как Вы изучаете, как документация OTP организована, становится намного легче найти то, что Вы ищете (Вы склонны должны учиться, какие приложения обеспечивают который модули или виды модулей).

    Также просто просмотр документации для приложений часто довольно полезен - я обнаружил много действительно полезного кода этот путь - sys, dbg, toolbar, и т.д.

  • Различие между оболочкой erlang и модулем erlang

    Shell erlang является немного отличающимся диалектом к модулю erlang. Вы не можете определить функции модуля (только забавы), необходимо загрузить рекордные определения для работы с записями (rr/1) и так далее. При изучении, как записать, код erlang с точки зрения анонимных функций несколько хитер, но важен для работы над производственными системами с удаленной оболочкой.

    Изучение взаимодействия между оболочкой и {запускается, икра} _link процессы редактора - при выполнении некоторого кода оболочки, который отказывает (повышает исключение), выходы процесса оболочки, и широковещательно передаст сигналы выхода к чему-либо, с чем Вы связались. Это в свою очередь закроет тот новый gen_server, Вы продолжаете работать. ("Почему мой серверный процесс продолжает исчезать?")

  • Различие между erlang выражениями и защитными выражениями

    Выражения охраны (когда пункты) не являются выражениями Erlang. Они могут выглядеть подобными, но они очень отличаются. Гвардия не может вызвать произвольные erlang функции, только охранять функции (length/1, проверки печатания, element/2 и немногие другие указанные в документации OTP). Гвардия следует или приводит к сбою и не имеет побочных эффектов. Выражения Erlang, с другой стороны, могут сделать то, что они любят.

  • Загрузка кода

    Удаваясь, когда и как обновления кода работают, колдовство, чтобы заставить gen_server обновлять до последней версии модуля обратного вызова (code:load(Mod), sys:suspend(Pid), sys:change_code(Pid, Mod, undefined, undefined), sys:resume(Pid).).

    Путь сервера кода (code:get_path/0) - Я не могу рассчитать, сколько раз я столкнулся с неопределенными функциональными ошибками, которые оказались мной забывающий добавлять ebin каталог к пути поиска кода.

  • Здание erlang код

    Разработка полезной комбинации emake (make:all/0 и erl -make) и гну делает, занял довольно долгое время (приблизительно три года до сих пор :).

    Мои текущие любимые make-файлы видны по http://github.com/archaelus/esmtp/tree/master

  • Распределение Erlang

    Получая имена узла, DNS, cookie и все остальные право для сможения к net_adm:ping/1 другой узел. Это берет практику.

  • Удаленная оболочка запутанность IO

    То, чтобы не забывать передать group_leader() кому: io:format вызовы работают на удаленном узле так, чтобы вывод появился в Вашей оболочке вместо того, чтобы загадочно исчезнуть (я думаю браузер отчета о SASL rb все еще имеет проблему с отправкой части ее вывода к неправильному узлу при использовании по удаленному соединению оболочки)

5
ответ дан 4 December 2019 в 01:03
поделиться
  • Отладка трудна. Все, что я знаю, чтобы сделать, должно прикрепить вызовы к "error_logger:info_msg" в моем коде.
  • Документы были пятнистыми - они являются корректными, но очень очень краткими.
  • Это - мой собственный отказ, но: Я начал кодировать, прежде чем я понял eunit, таким образом, много моего кода более трудно протестировать, чем это должно быть.
2
ответ дан 4 December 2019 в 01:03
поделиться

net_adm:ping ()

Вы собирающийся начинать говорить с другим сервером? Помните к net_adm:ping ('car@bsd-server'). в оболочке. Еще никакая коммуникация не пройдет.

1
ответ дан 4 December 2019 в 01:03
поделиться

timer:sleep ()

Пауза для X мс.

0
ответ дан 4 December 2019 в 01:03
поделиться

controlling_process ()

Используйте controlling_process (Сокет, Pid), если Вы мечете икру прочь в нескольких потоках. Правильный пакет к правильному потоку.

1
ответ дан 4 December 2019 в 01:03
поделиться

Вещью, которая взяла меня большая часть времени для получения моей головы вокруг, была просто идея структурировать мой код полностью вокруг вызовов функции и передачи сообщений. Остальная часть его любой просто выпал оттуда (порождение, удаленные узлы) или чувствовал себя подобно обычному материалу, который необходимо изучить на любом новом языке (синтаксис, stdlib).

0
ответ дан 4 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: