by Mike Williams
For many years, I have been trying to define the "ideal programmer" only to come to the realisation that they don't exist. This talk will be about the people and skill you must have in your team if you are to run a successful project. It will also touch on what you need to avoid as well.
Erlang is a simple language specially designed for robust, high availability (HA) systems. In six years of working on telco systems, we have learned the hard way that there are a few pitfalls. We present the most common problems and the coding guidelines and design idioms we have adopted to deal with issues such as the atom table, memory and the garbage collector, message queues, flow control, configuration and hot code upgrades.
Talk objectives: Warn developers of HA Erlang systems about common pitfalls and lessons learned, and provide coding guidelines and design idioms to avoid them.
Target audience: Developers and architects, aspiring Erlang experts, especially of high availability systems.
by Loïc Hoguin
The Ranch TCP acceptors pool allows rapid development of network applications. But how fast is it really to write such an application and implement a protocol? How should the protocol be implemented? What are the traps to avoid?
This presentation will be a live demonstration of the implementation of an FTP server from scratch up to a working state using Ranch, binary pattern matching and a nice French accent.
Talk objectives: Learn how to use Ranch, Learn how to implement a text protocol using binary pattern matching.
Target audience: Network programmers and people willing to witness the incredible productivity that Erlang can offer.
The BEAM is the standard Erlang implementation in use today. It was specially designed just to run Erlang. We will make a quick tour of the BEAM visiting the major sights to see what it looks like internally and how it functions. There will be no need of a towel on this short tour.
Developers and system architects who want to get a better understanding of how their applications will run.
Erlang is designed for building massively scalable and highly available soft real-time systems. Unsurprisingly , Erlang provides us with powerful libraries for automated testing of these type of systems. In this talk, we take a look at three of the popular automated testing libraries for Erlang, discuss their individual strengths and weaknesses and illustrate the importance of continuous integration by deploying sample automated tests to Travis-CI, a free continuous integration service for the open source community.
Talk objectives: Describe and explain popular Erlang automated testinging libraries (EUnit, QuickCheck, Common Test) and the advantages of continuous integration.
Target audience: Test-conscious Erlang programmers.
by Simon Thompson and Huiqing Li
The number of cores in modern computer system is increasing rapidly, and Erlang's support for multi-core system is also being continuously improved. To take full advantage of the computing power provided by multi-core Erlang, new Erlang applications need to be written with more parallelism to assure that there are enough processes ready to run, and existing sequential Erlang applications can be refactored to introduce more parallelism and therefore scalability. However, very often one might find that an application does not scale as expected.
In this talk, we present the Erlang concurrency profiling tool Percept2, which is an enhanced version of the original Erlang concurrency profiling tool Percept. Built on top of Percept, Percept2 provides not only process profiling information, but also scheduler and function profiling information. Visualisation and navigation through data is made easy in Percept2, and the performance has also been improved by the parallelisation of tool itself. We demonstrate how Percept2 can be used to find Erlang application level bottlenecks, and also how the tool can be used to provide guidance and feedback on the parallelisation of existing sequential Erlang applications.
RabbitMQ is a Messaging and Queueing server that works with the AMQP protocol. But what happens if we want to use the server beyond AMQP? What if we want to replace its own storage engine or provide new authentication methods? All of that can be done why writing new plugins for RabbitMQ in Erlang.
In this talk we are going to present various plugins for RabbitMQ and we will show how to extend the broker by adding new routing algorithms with custom exchange types. The code examples will be in Erlang.
by Matt Kern and Stephen Page
Cyan is a systems company involved in two primary markets: public lighting control and smart metering. This talk covers our CyLec architecture for electricity smart metering, from the wireless ISM-band nodes embedded in the meters via the GPRS gateways that link them to the internet and the Erlang cloud infrastructure that manages them to the rich web applications in the control rooms.
Talk objectives: Show off an innovative use of Erlang in the M2M space.
by Ian Barber
Google has been providing webservices and APIs for over a decade, and the latest generation of these services is engineered around discoverability, REST, and JSON. In this talk we'll look at the architectural decisions that have lead us to this point, and at how to consumer and work with these APIS from Erlang, working with OAuth2 and JSON.
Talk objectives: The aim is to show consuming modern web APIs with Erlang, and to discuss the architectural principles and challenges that have lead us to the current design.
Target audience: People interested in interacting with Google's services, people developing large scale restful web services.
MeshUp is our functional workflow engine. We like our business logic pure and our effects managed - this talk describes how we do it. While MeshUp was designed with Riak in mind, the approach should be of interest to anyone who wants to maintain some discipline in large, database-driven Erlang applications.
Talk objectives: Describe how we realize the two main goals of our application platform: 1) maintaining the benefits of functional programming in the presence of a shared database 2) making Dynamo-style databases easier to use.
Target audience: Hopefully functional programmers in general, but with a bias towards database nerds.
Matt Heitzenroder provides an introduction to Webmachine, a RESTful toolkit for writing well-behaved HTTP applications, helping developers to deal with the complexities of an HTTP-based application.
Talk objectives: To introduce Webmachine as a good starting point for learning Erlang and as a tool to quickly build RESTful APIs
Target audience: Erlang Beginners and Web Developers
by Harro Verkouter
8th November 2012