Subscribe to our Erlang Factory newsletter to receive the latest updates and news

Elegance Isn't Optional - Building The End-User Programmable Web

Gordon Guthrie
Gordon Guthrie

Vixo / hypernumbers
This talk will look at the end-user programmable web, covering:
* the business opportunities
* the technical architecture
* similarities with other (more familiar) functional programming languages
* building customer data query languages

It will be a mixture of commercial and deep technical content.

We have two objectives:
* hire Erlang programmers
* develop links with academics in the field to license our code for research uses

Target audience: Anybody in Scotland interested in Erlang for commercial or research purposes.

Erlang Rationale

Robert Virding
Robert Virding

Erlang Solutions
While Erlang has much in common with other functional languages it does many things differently from other languages. In this talk one of the three inventors of Erlang will look at the rationale behind Erlang and try to show how many of its important features combine to work together. We will also look at how Erlang was first developed to show the reason for some of the features in the rationale.

Erlang from behind the Trenches

Francesco Cesarini
Francesco Cesarini

Erlang Solutions Ltd.
Erlang is a programming language designed for the Internet Age, although it pre-dates the Web. It is a language designed for multi-core computers, although it pre-dates them too. It is a "beacon language", to quote Haskell guru Simon Peyton-Jones, in that it more clearly than any other language demonstrates the benefits of concurrency-oriented programming.

In this talk, Francesco will introduce Erlang from behind the trenches, looking at how its history influenced its constructs. He will be doing so from a personal perspective, with anecdotes from his time at the Ericsson computer science lab at a time when the language was being heavily influenced and later when working on the OTP R1 release.

Morning Bootcamp - Practical Erlang Programming

Francesco Cesarini
Francesco Cesarini

Erlang Solutions Ltd.
This hands on tutorial will give you an introduction to the Erlang programming language. You will learn the basics of how to read, write and structure Erlang programs.
We start with an insight into the theory and concepts behind sequential and concurrent Erlang, allowing you to get acquainted with the Erlang syntax and semantics. 

We conclude with an overview of the error handling mechanisms used to build fault tolerant systems with five nines availability.

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.

In order to get the most out of this tutorial, you must have a good grasp of other programming languages. This will be a hands on tutorial. You will need a laptop with Erlang installed and your favourite editor.

To be able to attend the tutorial, you must have Erlang working alongside your favourite editor. You can download binary snapshots for most OSes here.

If you prefer to compile from source, you can download ithere.

It would be beneficial if you can get the Erlang mode running on your favourite editor. The most commonly used editors include Eclipse, emacs and vim, but you will find an Erlang support in most environments. To install Emacs, find the appropriate manu al page in the Erlang documentation. VIM should work out of the box. Eclipse users need the ErlIDE plugin.

If you have time to dabble with Erlang, a great site with simple tutorials is 

Keywords: Erlang, Fault Tolerant Systems, Concurrency, Emerging Languages, Functional Programming 
Target Audience: 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

Taking a Virtual Machine towards Many-Core

Kenneth Lundin
Kenneth Lundin

Ericsson AB
The number of cores in modern computer systems increase rapidly. While the Erlang Virtual Machine has a history of good support for multicore systems, new development in the hardware industry requires further development of the Virtual Machine. This talk will walk you through the latest development, as well as the future, of the Virtual Machine regarding support for multicore and multiprocessor systems. The talk will also discuss what problems arise when moving from multicore to many-core systems and what the solutions to the forthcoming challenges might be. The talk will be quite technical.

Talk objectives: Give the audience an insight of some of the Virtual Machine internals.

Target audience: People with technical interest in the Virtual Machine internals. 

The Dawn of the Mega-Core Age: Using Refactoring and Skeletons to Generate Parallel Erlang Programs

Chris Brown
Chris Brown

University of St Andrews
Despite Moore's ``law'', uniprocessor clock speeds have now stalled. Rather than using single processors running at ever higher clock speeds, it is  common to find dual-, quad- or even hexa-core processors, even in consumer laptops and desktops. Future hardware will not be slightly parallel, however, as in today's multicore systems, but will be massively parallel, with manycore and perhaps even megacore systems becoming mainstream. This means that programmers need to start thinking parallel from the outset of  their program development rather than treating parallelism as a bolt-on afterthought. This talk introduces the Paraphrase approach to constructing parallel programs, a new approach that uses formally-defined refactoring transformations based around strong parallel patterns and associated skeleton implementations, and directly exploits functional programming concepts. We show how complex parallel programs can be built from primitive Erlang building blocks, and describe some new software refactorings for parallel Erlang programs that capture common parallel abstractions, such as divide-and-conquer and data parallelism, using these building blocks. The ParaPhrase approach is both flexible and scalable, capable of covering both GPU and CPU computations, scaling from multi-core to mega-core processors, and covering a variety of parallel programming paradigms. 

Talk objectives: To give an overview of the ParaPhrase project and to show how we can parallelise Erlang programs using refactoring and skeletons.

Target audience: The single-core processor is obsolete. So effectively everyone! :)

The Design of Scalable Distributed (SD) Erlang

Natalia Chechina
Natalia Chechina

Heriot-Watt University
The multicore revolution means that the number of cores in commodity machines is growing exponentially. Many expect 100,000 core clouds/platforms to become commonplace, and the best predictions are that core failures on such an architecture will become relatively common, perhaps one hour mean time between core failures. 
The RELEASE project aims to scale Erlang to build reliable general-purpose software, such as server-based systems, on massively parallel machines. We propose to work at three levels: 
 - evolving the Erlang virtual machine so that it can work effectively on large scale multicore systems;
 - evolving the language to Scalable Distributed (SD) Erlang, and adapting the OTP framework;
 - developing a scalable Erlang infrastructure to integrate multiple, heterogeneous clusters. 
These developments will be supported by tools which will allow programmers to understand the behaviour of large scale SD Erlang programs, and to refactor standard Erlang programs into SD Erlang.
This talk outlines the anticipated architecture trends and presents the initial design of SD Erlang.

Talk objectives: Indicate to Erlang developers our vision of Scalable Distributed Erlang

Target audience: Developers of Erlang applications