Erlang Central

Difference between revisions of "Main Page"

From ErlangCentral Wiki

Line 1:Line 1:
 
__NOTOC__  __NOEDITSECTION__
 
__NOTOC__  __NOEDITSECTION__
= Your Erlang Community Site =
+
<table cellspacing="0" cellpadding="0">
 
+
<tr>
{| style="float: right; clear:right; width:30%; background:#fcfcfc; border:1px solid #860404; cell-padding:0 white-space:nowrap; overflow: hidden"
+
<td>
|style="color:#000; font-size:85%; margin-top:0 "|
+
<h2 class="#bodyContent">Trapexit News</h2>
+
<irss max=1 news=true>http://www.trapexit.org/forum/rss_mod.php?f=19</irss>
+
|}
+
 
+
{| style="margin-top:1em; float: right; clear:right; width:30%; background:#fcfcfc; border:1px solid #860404; cell-padding:0 white-space:nowrap; overflow: hidden"
+
|style="color:#000; font-size:85%; margin-top:0; "|
+
<h2 class="#bodyContent">Latest Forum Posts</h2>
+
<irss max=3>http://www.trapexit.org/forum/rss_mod.php?f=23</irss>
+
<br/><irss max=3>http://www.trapexit.org/forum/rss_mod.php?f=7</irss>
+
<br/><irss max=3>http://www.trapexit.org/forum/rss_mod.php?f=14</irss>
+
|}
+
 
+
{| style="margin-top:1em; float: right; clear:right; width:30%; background:#fcfcfc; border:1px solid #860404; cell-padding:0 white-space:nowrap; overflow: hidden"
+
|style="color:#000; font-size:85%; margin-top:0; "|
+
<h2 class="#bodyContent">Latest Mailing Lists Posts</h2>
+
<irss max=3>http://www.trapexit.org/forum/rss_mod.php?f=2</irss>
+
<br/><irss max=1>http://www.trapexit.org/forum/rss_mod.php?f=11</irss>
+
<br/><irss max=1>http://www.trapexit.org/forum/rss_mod.php?f=12</irss>
+
|}
+
  
 +
= 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.
 
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.
+
 
<!-- BEGIN UPDATE NOTICE.
+
{| style="width:100%; background:#fcfcfc; margin-top:+.9em; border:1px solid #860404;"
+
|style="color:#000"|
+
{| style="border:solid 0px; width:100%; background:none;"
+
|style="text-align:center;white-space:nowrap; color:#000;"|
+
<div style="font-size:162%; border:none; margin:0; padding:.1em; color:#860404;">Update Notice</div>
+
<div style="top:+0.2em; font-size:100%;"><br/>trapexit.org is currently being updated, and might have occasional downtime.</div>
+
<div>Login for the wiki and the forum has been merged, <b>use the name from the forum to login.</b><br>Your wiki login is no longer valid. If you were automatically logged on from previous sessions<br> prior to the update,<b> clear your cache and cookies</b> in order to log off.</div>
+
|}
+
|}
+
<!-- END UPDATE NOTICE -->
+
 
=== What is Erlang and OTP? ===
 
=== What is Erlang and OTP? ===
 
Erlang is a programming language and a runtime system with strong built-in support for concurrency, distribution and fault tolerance. Originally developed at Ericson, Erlang was released as open source in 1998.  
 
Erlang is a programming language and a runtime system with strong built-in support for concurrency, distribution and fault tolerance. Originally developed at Ericson, Erlang was released as open source in 1998.  
Line 101:Line 71:
 
*[[:Category:Links|Links]]
 
*[[:Category:Links|Links]]
 
*[http://www.trapexit.org/planet/ Check out our RSS Feeds]
 
*[http://www.trapexit.org/planet/ Check out our RSS Feeds]
 +
 +
</td>
 +
<td valign="top">
 +
 +
{| style="width: 200px; background:#fcfcfc; border:1px solid #860404; cell-padding:0 white-space:nowrap; overflow: hidden"
 +
|style="color:#000; font-size:85%; margin-top:0 "|
 +
<h2 class="#bodyContent">Trapexit News</h2>
 +
<irss max=1 news=true>http://www.trapexit.org/forum/rss_mod.php?f=19</irss>
 +
|}
 +
 +
{| style="margin-top:1em; width: 200px; background:#fcfcfc; border:1px solid #860404; cell-padding:0 white-space:nowrap; overflow: hidden"
 +
|style="color:#000; font-size:85%; margin-top:0; "|
 +
<h2 class="#bodyContent">Latest Forum Posts</h2>
 +
<irss max=3>http://www.trapexit.org/forum/rss_mod.php?f=23</irss>
 +
<br/><irss max=3>http://www.trapexit.org/forum/rss_mod.php?f=7</irss>
 +
<br/><irss max=3>http://www.trapexit.org/forum/rss_mod.php?f=14</irss>
 +
|}
 +
 +
{| style="margin-top:1em; width: 200px; background:#fcfcfc; border:1px solid #860404; cell-padding:0 white-space:nowrap; overflow: hidden"
 +
|style="color:#000; font-size:85%; margin-top:0; "|
 +
<h2 class="#bodyContent">Latest Mailing Lists Posts</h2>
 +
<irss max=3>http://www.trapexit.org/forum/rss_mod.php?f=2</irss>
 +
<br/><irss max=1>http://www.trapexit.org/forum/rss_mod.php?f=11</irss>
 +
<br/><irss max=1>http://www.trapexit.org/forum/rss_mod.php?f=12</irss>
 +
|}
 +
 +
<!-- BEGIN UPDATE NOTICE.
 +
{| style="width:100%; background:#fcfcfc; margin-top:+.9em; border:1px solid #860404;"
 +
|style="color:#000"|
 +
{| style="border:solid 0px; width:100%; background:none;"
 +
|style="text-align:center;white-space:nowrap; color:#000;"|
 +
<div style="font-size:162%; border:none; margin:0; padding:.1em; color:#860404;">Update Notice</div>
 +
<div style="top:+0.2em; font-size:100%;"><br/>trapexit.org is currently being updated, and might have occasional downtime.</div>
 +
<div>Login for the wiki and the forum has been merged, <b>use the name from the forum to login.</b><br>Your wiki login is no longer valid. If you were automatically logged on from previous sessions<br> prior to the update,<b> clear your cache and cookies</b> in order to log off.</div>
 +
|}
 +
|}
 +
<!-- END UPDATE NOTICE -->
 +
</td></tr></table>

Revision as of 19:21, 2 July 2007

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.

What is Erlang and OTP?

Erlang is a programming language and a runtime system with strong built-in support for concurrency, distribution and fault tolerance. Originally developed at Ericson, Erlang was released as open source in 1998.

The Open Transaction Platform (OTP) is set of Erlang libraries and design principles providing middle-ware to develop distributed, fault tolerant, massively concurrent soft real-time systems.

Here is an example of Erlang code:

-module(beersong).
-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

Trapexit News

<irss max=1 news=true>http://www.trapexit.org/forum/rss_mod.php?f=19</irss>

Latest Forum Posts

<irss max=3>http://www.trapexit.org/forum/rss_mod.php?f=23</irss>
<irss max=3>http://www.trapexit.org/forum/rss_mod.php?f=7</irss>
<irss max=3>http://www.trapexit.org/forum/rss_mod.php?f=14</irss>

Latest Mailing Lists Posts

<irss max=3>http://www.trapexit.org/forum/rss_mod.php?f=2</irss>
<irss max=1>http://www.trapexit.org/forum/rss_mod.php?f=11</irss>
<irss max=1>http://www.trapexit.org/forum/rss_mod.php?f=12</irss>