Main Page
From Erlang Community
| Revision as of 19:52, 21 June 2007 (edit) Karl (Talk | contribs) (Posted new front page) ← Previous diff |
Current revision (16:11, 19 November 2009) (edit) (undo) Admin (Talk | contribs) m |
||
| (47 intermediate revisions not shown.) | |||
| Line 1: | Line 1: | ||
| __NOTOC__ __NOEDITSECTION__ | __NOTOC__ __NOEDITSECTION__ | ||
| - | = | + | <table cellspacing="0" cellpadding="0" style="margin-left: 0px;"> |
| + | <tr> | ||
| + | <td valign="top"> | ||
| + | |||
| + | = 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. | ||
| + | |||
| + | === Trapexit News === | ||
| + | {| style="margin-left: 0px; margin-top: 15px; background:#fcfcfc; border:1px solid #860404; cell-padding:0 white-space:nowrap; overflow: hidden" | ||
| + | |style="color:#000; font-size:85%; margin-top:20"| | ||
| + | Hi there! | ||
| + | |||
| + | As you can see our forums are not available anymore. They're in a read only mode which makes you able to access the content, but not to edit or add to it. | ||
| + | Sorry for the inconvenience. | ||
| + | The content of Trapexit.org - including forums is currently being migrated to ErlangCentral.org. Check it out the new Erlang community website and its functionalities here: http://erlangcentral.org/erlang-times/ | ||
| + | |} | ||
| === What is Erlang and OTP? === | === What is Erlang and OTP? === | ||
| - | Erlang is a programming language and | + | 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:==== | ||
| + | |||
| + | <pre style="margin-top: 20px"> | ||
| + | -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. | ||
| + | </pre> | ||
| - | The Open Telecom Platform (OTP) is set of Erlang libraries implementing support for various design patterns. | ||
| ==Starter== | ==Starter== | ||
| Line 13: | Line 75: | ||
| [[:Category:HowTo|HowTo documents]] - Tutorials and Guides for Erlang developers<br/> | [[:Category:HowTo|HowTo documents]] - Tutorials and Guides for Erlang developers<br/> | ||
| - | [[:Category:CookBook|Erlang Cookbook]] - A | + | [[:Category:CookBook|Erlang Cookbook]] - A collection of Erlang solutions to specific problems<br/> |
| [[:Category:Concepts|Erlang Concepts]] - Articles dealing with specific Erlang aspects<br/> | [[:Category:Concepts|Erlang Concepts]] - Articles dealing with specific Erlang aspects<br/> | ||
| [[:Category:Best Practices|Erlang Best Practices]] - Articles dealing with best practices in Erlang<br/> | [[:Category:Best Practices|Erlang Best Practices]] - Articles dealing with best practices in Erlang<br/> | ||
| + | [[:Category:Articles|Erlang Articles]] - Articles of interest to Erlang developers and testers<br/> | ||
| + | [[ErlangJobs]] - Erlang and Erlang related Jobs<br/> | ||
| + | [[:Category:Links|Links]] to Erlang related sites outside Trapexit<br> | ||
| + | [http://planet.trapexit.org RSS Feeds] related to Erlang, including blogs and software development | ||
| - | + | </td> | |
| - | + | <td valign="top"> | |
| - | + | ||
| - | + | ||
| - | + | {| 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=2>http://forum.trapexit.org/rss_mod.php?f=23</irss> | ||
| + | <br/><irss max=2>http://forum.trapexit.org/rss_mod.php?f=7</irss> | ||
| + | <br/><irss max=2>http://forum.trapexit.org/rss_mod.php?f=14</irss> | ||
| + | <br/><irss max=1>http://forum.trapexit.org/rss_mod.php?f=28</irss> | ||
| + | <br/><irss max=1>http://forum.trapexit.org/rss_mod.php?f=20</irss> | ||
| + | <br/><irss max=1>http://forum.trapexit.org/rss_mod.php?f=5</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 Planet Entries</h2> | ||
| + | <rss_planet max=5>http://planet.trapexit.org/rss20.xml</rss_planet> | ||
| + | |} | ||
| - | = | + | {| 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 Wiki Changes</h2> | |
| - | + | <rss_recent max=3>http://www.trapexit.org/index.php?title=Special:Recentchanges&hideminor=0&days=30&feed=rss</rss_recent> | |
| + | |} | ||
| - | == | + | {| 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">Mailing Lists Posts</h2> | ||
| + | <irss max=1>http://forum.trapexit.org/rss_mod.php?f=2</irss><br/> | ||
| + | <irss max=1>http://forum.trapexit.org/rss_mod.php?f=11</irss><br/> | ||
| + | <irss max=1>http://forum.trapexit.org/rss_mod.php?f=27</irss><br/> | ||
| + | <irss max=1>http://forum.trapexit.org/rss_mod.php?f=12</irss><br/> | ||
| + | <irss max=1>http://forum.trapexit.org/rss_mod.php?f=25</irss> | ||
| + | |} | ||
| + | |||
| - | + | </td></tr></table> | |
Current revision
Your Erlang Community SiteWelcome 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 NewsWhat 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.
StarterGood places to start on trapexit.org HowTo documents - Tutorials and Guides for Erlang developers |
|

Digg It
Del.icio.us
Reddit
Facebook
Stumble Upon
Technorati

