Sponsors

  • Microsoft
  • Nebula
  • Google
  • SugarCRM
  • Facebook
  • HP
  • Intel
  • Rackspace Hosting
  • WSO2
  • Alfresco
  • BlackBerry
  • CUBRID
  • Dell
  • eBay
  • Heroku
  • InfiniteGraph
  • JBoss
  • LeaseWeb
  • Liferay
  • Media Temple, Inc.
  • OpenShift
  • Oracle
  • Percona
  • Puppet Labs
  • Qualcomm Innovation Center, Inc.
  • Rentrak
  • Silicon Mechanics
  • SoftLayer Technologies, Inc.
  • SourceGear
  • Urban Airship
  • Vertica
  • VMware
  • (mt) Media Temple, Inc.

Sponsorship Opportunities

For information on exhibition and sponsorship opportunities at the convention, contact Sharon Cordesse at scordesse@oreilly.com

Download the OSCON Sponsor/Exhibitor Prospectus

Contact Us

View a complete list of OSCON contacts

Building Reliable Client- Server Applications in Erlang

Francesco Cesarini (Erlang Solutions Ltd)
Programming
Location: D137/138
Average rating: ****.
(4.00, 2 ratings)

Basic & Sequential Erlang
This section deals with Erlang data types and pattern matching. Functions, and modules are discussed. It continues by introducing recursion, with a special emphasis on different recursive patterns, including tail recursion.

Concurrent Programming
This section describes the creation of processes and their life span. It looks at sending and receiving messages, selective reception, and passing data in the messages. It continues with the various uses of time outs and registering processes, and terminates by showing the generic process code structure. We conclude this section by introducing the simple but powerful error handling mechanisms in processes. It looks at process links, exit signals and their propagation semantics.

Generic Servers and Supervisors
This section introduces the OTP design patterns commonly referred to as generic servers and supervisors. We give an example of a client server application written in Erlang, migrating it to a system using the gen_server behaviour libraries. We wrap up this section by demonstrating how to place the server we’ve just written in a supervision tree.

Delegates who will benefit from this tutorial includes those want to learn more about Erlang and its concurrency model. Attending will put you on the right track in building distributed, fault tolerant massively concurrent soft real-time systems.

PREREQUISITES

In order to get the most out of this tutorial, you must have a good grasp of other programming languages. Having dabbled with http://tryerlang.org is not necessary, but will help. This will be a hands on tutorial. Attendees need to come to the tutorial having downloaded and installed Erlang and the Erlang mode for your favorite editor. You can either download a binary from http://www.erlang-solutions.com/section/98/downloads or build from source down-loadable at http://www.erlang.org/download.html.

QUESTIONS for the speaker?: Use the “Leave a Comment or Question” section at the bottom to address them.

Photo of Francesco Cesarini

Francesco Cesarini

Erlang Solutions Ltd

Francesco Cesarini is the founder of Erlang Solutions Ltd. He has used Erlang on a daily basis since 1995, starting as an intern at Ericsson’s computer science laboratory, the birthplace of Erlang. He moved on to Ericsson’s Erlang training and consulting arm working on the first release of the OTP middleware, applying it to turnkey solutions and flagship telecom applications. In 1999, soon after Erlang was released as open source, he founded Erlang Solutions. With offices in three countries, they have become the world leaders in Erlang based support, consulting, training, certification, systems development and conferences. Francesco has worked in major Erlang based projects both within and outside Ericsson, and as Technical Director, has led the development and consulting teams at Erlang Solutions. He is also the co-author of Erlang Programming, a book recently published by O’Reilly and lectures at Oxford University and the IT Univertisy of Gothenburg. You can follow his ramblings on twitter.

Comments on this page are now closed.

Comments

Picture of Francesco Cesarini
Francesco Cesarini
07/27/2011 1:06pm PDT

This is so much class dependent. Some years, we got through the material and the exercises + solutions with time to spare. On other occasions (like yesterday), we had to drop an exercise. But I agree, 3.5 hours is too little time for a proper hands on overview. In other conferences, we usually get a day.

Picture of Alison Chaiken
Alison Chaiken
07/27/2011 5:55am PDT

I like idea of a hands-on tutorial, but the 3.5 session was too short to be effective. The session started out with attendees going through little programming exercises with erl, the erlang interpreter, which was fun and useful, but after the break the presenter jetted through a bunch of material too rapidly for me to follow. Either a repeat session should just focus on showing code samples, as Wampler did in the morning, or focus on attendees learning hands-on using erl. Cramming too much material in reduces the utility.

Picture of Alison Chaiken
Alison Chaiken
07/26/2011 9:20am PDT

Already checked, no packages in Fedora repos provide libwx or libodbc that I can find. Already have erlang-wx something and erlang-wx something installed.

Picture of Alison Chaiken
Alison Chaiken
07/26/2011 9:14am PDT

Sorry, that’s with sudo rpm -ivh erlang-otp_R14B03_i686.rpm

Picture of Alison Chaiken
Alison Chaiken
07/26/2011 9:13am PDT

Linux tomales.exerciseforthereader.org 2.6.35.13-92.fc14.x86_64 #1 SMP Sat May 21 17:26:25 UTC 2011 x86_64×86_64×86_64 GNU/Linux sudo rpm -ivh erlang-otp_R14B03_i686.rpm error: Failed dependencies: libcrypto.so.1.0.0 is needed by Erlang-OTP-R14B03-1.i686 libodbc.so.1 is needed by Erlang-OTP-R14B03-1.i686 libssl.so.1.0.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_baseu-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_baseu-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686 libwx_baseu_xml-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_adv-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_adv-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_aui-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_aui-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_aui-2.8.so.0(WXU_2.8.5) is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_core-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_core-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_gl-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_gl-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_html-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_html-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_stc-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_stc-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_xrc-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_xrc-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686

Picture of Alison Chaiken
Alison Chaiken
07/26/2011 9:07am PDT

alison@tomales ;-) sudo rpm -ivh erlang-otp_R14B03_i686.rpm [sudo] password for alison: error: Failed dependencies: libcrypto.so.1.0.0 is needed by Erlang-OTP-R14B03-1.i686 libodbc.so.1 is needed by Erlang-OTP-R14B03-1.i686 libssl.so.1.0.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_baseu-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_baseu-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686 libwx_baseu_xml-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_adv-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_adv-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_aui-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_aui-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_aui-2.8.so.0(WXU_2.8.5) is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_core-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_core-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_gl-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_gl-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_html-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_html-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_stc-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_stc-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_xrc-2.8.so.0 is needed by Erlang-OTP-R14B03-1.i686 libwx_gtk2u_xrc-2.8.so.0(WXU_2.8) is needed by Erlang-OTP-R14B03-1.i686 alison@tomales ;-)

On fully patched Fedora 14.

Picture of Francesco Cesarini
Francesco Cesarini
07/26/2011 8:49am PDT

Alison, try one of the pre-built packages: www.erlang-solutions.com/se...

Picture of Alison Chaiken
Alison Chaiken
07/26/2011 7:21am PDT

Can’t build otp_src_R14B03: make4: Entering directory `/opt/otp_src_R14B03/lib/jinterface/java_src/com/ericsson/otp/erlang’ if [ ! -d ”/opt/otp_src_R14B03/lib/jinterface/priv/” ];then mkdir ”/opt/otp_src_R14B03/lib/jinterface/priv/”; fi /bin/sh: jar: command not found make4: * [/opt/otp_src_R14B03/lib/jinterface/priv/OtpErlang.jar] Error 127