Main Page

From Erlang Community

Your Erlang Community Site

Welcome to trapexit.org, the Erlang community site where you can read news and weblogs related to Erlang/OTP, discuss projects, issues and ideas with other Erlang developers, and read and publish articles and HowTos related to Erlang/OTP.

Trapexit News

Erlang Open Source crawler!

Trapexit is proud to announce its own Erlang open source crawler. We crawl the web for you, gathering searchable information on all open source Erlang projects from all the major repositories. You can discuss these projects in the forum, add documentation in the trapexit wiki or rate the various contributions. To view our new project index repository, visit http://projects.trapexit.org.

What is Erlang and OTP?

Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance. Originally developed at Ericsson, it was released as open source in 1998.

OTP is set of Erlang libraries and design principles providing middle-ware to develop these systems. It includes its own distributed database, applications to interface towards other languages, debugging and release handling tools. These tools and applications distributed by Ericsson are complemented by numerous other open source projects.

Here is an example of Erlang code:

-module(beersong).
-author('BillClementson').
-export([sing/0]).
-define(TEMPLATE_0, "~s of beer on the wall, ~s of beer.~n"
                    "Go to the store and buy some more," 
                    "99 bottles of beer on the wall.~n").
-define(TEMPLATE_N, "~s of beer on the wall, ~s of beer.~n"
                    "Take one down and pass it around, ~s"
                    " of beer on the wall.~n~n").

create_verse(0)      -> 
    {0, io_lib:format(?TEMPLATE_0, phrase(0))};
create_verse(Bottle) -> 
    {Bottle, io_lib:format(?TEMPLATE_N, phrase(Bottle))}.

phrase(0)      -> ["No more bottles", "no more bottles"];
phrase(1)      -> ["1 bottle", "1 bottle", "no more bottles"];
phrase(2)      -> ["2 bottles", "2 bottles", "1 bottle"];
phrase(Bottle) -> 
     lists:duplicate(2,integer_to_list(Bottle) ++ " bottles") ++ 
                     [integer_to_list(Bottle-1) ++ " bottles"].
bottles() -> lists:reverse(lists:seq(0,99)).
sing() ->
    lists:foreach(fun spawn_singer/1, bottles()),
    sing_verse(99).
spawn_singer(Bottle) ->
    Pid = self(), 
    spawn(fun() -> Pid ! create_verse(Bottle) end).
sing_verse(Bottle) ->
    receive
	{_, Verse} when Bottle == 0 ->
	    io:format(Verse);
	{N, Verse} when Bottle == N ->
	    io:format(Verse),
	    sing_verse(Bottle-1)
    after 
	3000 ->
	    io:format("Verse not received after 3 seconds"
                      " - re-starting singer~n"),
	    spawn_singer(Bottle),
	    sing_verse(Bottle)
    end.


Starter

Good places to start on trapexit.org

HowTo documents - Tutorials and Guides for Erlang developers
Erlang Cookbook - A collection of Erlang solutions to specific problems
Erlang Concepts - Articles dealing with specific Erlang aspects
Erlang Best Practices - Articles dealing with best practices in Erlang
Erlang Articles - Articles of interest to Erlang developers and testers
ErlangJobs - Erlang and Erlang related Jobs
Links to Erlang related sites outside Trapexit
RSS Feeds related to Erlang, including blogs and software development

Latest Forum Posts

Erlang

On Sale brand new Unlocked Apple iphone 3GS 32GB--$250
  (Sat Mar 13, 2010 3:04 pm)
Convert remote pid
  (Fri Mar 12, 2010 1:50 pm)

Open Telecom Platform (OTP)

RE: Which OTP behaviour to use
  (Wed Mar 10, 2010 11:50 am)
Full Time Erlang Opening AT Chicago,IL
  (Wed Feb 24, 2010 2:54 pm)

Advanced Erlang/OTP

Web page in erlang
  (Wed Mar 03, 2010 5:49 am)
Full Time Erlang Opening AT Chicago,IL
  (Wed Feb 24, 2010 2:53 pm)

Open Source Projects

Next Generation erlguten project
  (Sat Feb 27, 2010 5:17 pm)

User Contributions

erfb - An Erlang RFB Library
  (Mon Mar 08, 2010 8:36 pm)

Trapexit Forums

RE: Spam in Ywas Mailing List
  (Sun Jan 03, 2010 8:22 pm)

Latest Planet Entries

Erlang Factory News: New Speaker for the Erlang Factory SF Bay Area 2010
  (Fri Mar 12, 2010 12:45 pm)
Process-one Blogs: OneTeam XMPP client entering private alpha
  (Thu Mar 11, 2010 2:00 pm)
Damien Katz: Win a Nexus One from Couchio
  (Thu Mar 11, 2010 1:58 am)
Programming in the 21st Century: Eleven Years of Erlang
  (Wed Mar 10, 2010 6:00 am)
Erlang Inside: Zotonic destroys WordPress and rethinks the CMS with Erlang
  (Tue Mar 09, 2010 6:50 pm)

Latest Wiki Changes

User talk:CarlWright
  (Tue Mar 09, 2010 8:39 pm)
SNMP Quick Start
  (Tue Mar 09, 2010 12:45 am)
ErlangParis
  (Sun Mar 07, 2010 7:24 pm)

Mailing Lists Posts

Erlang questions mailing list

yet another mnesia network partitioning question
  (Sat Mar 06, 2010 8:48 pm)

Yaws mailing list

RE: yaws, fastcgi and django CGI failu {send_to_application_serv
  (Fri Mar 12, 2010 4:19 pm)

Erlang Web mailing list

RE: [Erlangweb-users] Problem with DTL and password field in for
  (Mon Mar 01, 2010 1:06 pm)

Ejabberd mailing list

[ANN] ejabberd 2.1.3 and exmpp 0.9.3 bugfix releases
  (Fri Mar 12, 2010 3:33 pm)

RabbitMQ mailing list

Building relationships with educational institutions
  (Tue Feb 09, 2010 1:08 pm)


Erlang/OTP Projects
Personal tools