background preloader

Placeholder1

Facebook Twitter

Chat and voice server. Erlware. Erlang Programming/Design Principles. Send Messages, do not share memory.

Erlang Programming/Design Principles

Messages are sent between processes. The compiler is very picky about what operations are "parallel-safe" and is not shy about letting you know. The compiler is particularly picky (parallel-safe) about sending and receiving messages. If you recurse after each message is processed then your code is more parallel-safe. Messages are delivered in order and are selected for removal from the queue by pattern matching (as in Prolog). Fail Early and Often Erlang designers often use an unusual but effective design technique called "fail early and often", FEO. Debugging Once a process has crashed we can gather crash information and let the programmer fix problems early.

Erlang Real Time Server - Part 1 - Diameter Server - Reinventing The Wheel. Diameter Basics There are several types of Diameter nodes - Client, Server, Relay, Proxy (we will focus only on the first two)Diameter nodes communicate with “commands”;Clients send a given command as “Request” and the server replays with the same command as “Answer”, e.g.

Erlang Real Time Server - Part 1 - Diameter Server - Reinventing The Wheel

Accounting-Request and Accounting-Answer - both will have the same command code (271), but in the case of the Client the ‘Command Flags’ ‘R’ bit will be set;Each command has a predefined set of attributes. If there is a need for additional attributes, they can be specified as “Vendor Specific Attribute Value Pairs” (or AVPs for short);RFC 3588 defines the basic set of AAA commands. Additional commands are defined in Diameter extensions called “Applications”. Don’t confuse them with the usual software applications (blame the Diameter creators for the poor choice of word here :), they are just declarative specifications (or ‘contracts’). [erlang-questions] cowboy / start_http ... multiple ports? - Google Groupes. Para poder utilizar los foros de debate de Grupos de Google, debes habilitar JavaScript en la configuración del navegador y, a continuación, actualizar la página.

[erlang-questions] cowboy / start_http ... multiple ports? - Google Groupes

¡Nuevo! Arrastra tus aplicaciones para cambiarlas de orden. Inicia sesión para probar esta función. MásAún más de Google Iniciar sesión Grupos Página principal Haz clic en el icono de estrella de un grupo para añadirlo a tus favoritos. Vistos recientemente. Esl/erlang_ale. List of TCP and UDP port numbers. Wikipedia list article This is a list of TCP and UDP port numbers used by protocols for operation of network applications.

List of TCP and UDP port numbers

The (IANA) is responsible for maintaining the official assignments of port numbers for specific uses.[1] However, many unofficial uses of both well-known and registered port numbers occur in practice. Www.it.uu.se/research/group/hipe/dialyzer/publications/races.pdf. Conclusion. Hey there, it appears your Javascript is disabled.

Conclusion

That's fine, the site works without it. However, you might prefer reading it with syntax highlighting, which requires Javascript! In erlang/OTP how do I start appmon to monitor an existing node. What is the most mature JSON library for Erlang. A Framework for Clustering Generic Server Instances - ErlangCentral Wiki. Groups. Heart. This modules contains the interface to the heart process. heart sends periodic heartbeats to an external port program, which is also named heart.

heart

The purpose of the heart port program is to check that the Erlang runtime system it is supervising is still running. If the port program has not received any heartbeats within HEART_BEAT_TIMEOUT seconds (default is 60 seconds), the system can be rebooted. Erlang Websocket Server using Cowboy. NOTE: This is the translation of the original article I wrote in spanish for the wiki of Erlang Argentina.

Erlang Websocket Server using Cowboy

Introduction Out of curiosity, and because some of my own projects needed it, I decided to go ahead and try writing a websocket server in erlang. Load Balancing Across Erlang Process Groups. In the application we're working on at work we walk data through a series of steps, transforming it in each step.

Load Balancing Across Erlang Process Groups

This is an Erlang system, and each of those steps has a process group which is populated with one or more processes (where each process is a gen_server). Any member of a given process group can serve any file, so abstractly the logic is along the lines of: Data = <<"data">>,Steps = [stage_1_group, stage_2_group, stage_3_group],lists:foldr(fun(Group, Data) -> Pid = pg2:get_closest_pid(Group), gen_server:call(Pid, {process, Data}) end, Data, Steps). This makes a very flexible pipeline for processing data, but as we started moving from implementing functionality to doing load tests we started to notice situations where distribution of work across a process group was uneven. With high enough load, one pid in a group might acquire a queue of twenty jobs while another had an empty queue. How to stop third-party Erlang applications. Erlang - Cowboy rest handler and gen_servers communication. Building a Non-blocking TCP server using OTP principles - ErlangCentral Wiki.

Author Serge Aleynikov <saleyn at gmail.com> Overview A reader of this tutorial is assumed to be familiar with gen_server and gen_fsm behaviours, TCP socket communications using gen_tcp module, active and passive socket modes, and OTP supervision principles.

Building a Non-blocking TCP server using OTP principles - ErlangCentral Wiki

OTP provides a convenient framework for building reliable applications. Run erlang application without terminal depending. Erlang - Can I use module pool to decide load balance.