ETC





Skills Matter

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

Building Web Applications in Erlang

Xingdong Bian
Xingdong Bian

Erlang Solutions Ltd.
Michal Slaski
Michal Slaski

During this workshop we will first describe the lessons learnt when internally developing web applications in Erlang. Then we will introduce the concept of a framework which has been implemented at Erlang Solutions on the basis of these experiences. The concept of the framework was first presented at Erlang Workshop 2006, Portland, Oregon (http://www.erlang.se/workshop/2006/).


Building a transactional distributed data store with Erlang

Alexander Reinefeld
Alexander Reinefeld

The e-commerce platforms at Amazon, E-Bay or Google serve millions of customers using tens of thousands of servers located in data centers throughout the world. At this scale, components fail continuously and it is difficult to maintain a consistent state while hiding failures from the application. Peer-to-peer protocols have been invented to provide availability by replicating services among peers. The current systems are perfectly tuned for sharing read-only data. To extend them beyond the typical file sharing, the support of transactions on distributed hash tables (DHTs) is a most important but yet missing feature.

At this talk given at the Erlang eXchange 2008, Alexander presented a key/value store based on DHTs that supports consistent writes. Alexander will explain how a system by Zuse Institute Berlin and onScale solutions GmbH comprises of three layers, all of them implemented in Erlang:
  • a DHT layer for scalable, reliable access to replicated distributed data,
  • a transaction layer to ensure data consistency in the face of concurrent write operations,
  • an application layer with a very demanding access rate of several thousand reads/writes per second.
For the application layer, Zuse Institute Berlin and onScale solutions GmbH selected a distributed, scalable Wiki with full transaction support. Alexander will show that its Wiki outperforms the public Wikipedia in terms of served page requests per second and he will discuss how the development of the distributed code benefited from the use of Erlang rather than C++ or Java.

This is a joint development by Zuse Institute Berlin and onScale solutions GmbH.


Couch DB at 10,000 feet

Jan Lehnardt
Jan Lehnardt

CouchDB is a document oriented database. It does not adhere to the relational principles of traditional databases. While there is not much room for technical details, we try to cover some of the cool things CouchDB uses Erlang for to present a super simple yet professional data storage model and the basis for Erlang-style high concurrency and fault tolerance.

Since itsbeginnings around three years ago, CouchDB went from a self-funded, single-developer project to a small community project under the hood of the Apache Software Foundation and with the lead developer Damien Katz being paid by IBM to work fulltime on CouchDB.


EUnit - Lightweight Unit Testing For Erlang

Richard Carlsson
Richard Carlsson

It is generally agreed that test-driven development with unit testing is a Good Thing. However, this requires that tests are easy to write, and that running the tests is simple and quick and results are presented concisely, to make the feedback loop as short as possible. When programming in Erlang, the EUnit framework provides you with all you need to do unit testing with minimal effort.

EUnit takes inspiration from the JUnit family of unit testing frameworks, but since Erlang is not an Object  Oriented language, the techniques are a bit different. EUnit uses a very compact functional style,  with direct support for concurrency, timeouts, fixtures, shell commands, and much more. This talk will provide an introduction to EUnit, Unit Testing and Test-Driven Development.


Enterprise Integration

Steve Vinoski
Steve Vinoski

What happens when someone who works on enterprise integration tools and solutions for years steps back and takes a good look around? He realises just how poor many enterprise integration systems really are. In this talk, Steve will describe his experiences building RPC, CORBA, J2EE, and Web Service (SOAP/WSDL) systems over the course of nearly 20 years, how the Web is finally influencing enterprise integration for the better, and how he’s realized in hindsight just how much Erlang could have greatly helped the situation.


Erlang & Robotics Workshop

Corrado Santoro
Corrado Santoro

The workshop will focus on how to program autonomous mobile robots using the Erlang language and the ROSEN framework.

The framework is based on OTP principles, making a strong use of behaviors in order to separate generic functionalities from the peculiarities of the structure of the specific robot to be implemented.

A tool for simulating the functioning of the robot will be also described, based on the ROSEN, a 3D robotic simulation engine. Thanks to ROSEN, the control system implemented using the framework can be tested by means of a simulation approach. Once tested, it can be deployed onto the real robot.

The workshop will consist of a brief introduction to the problem after which a description of the robotic framework and ROSEN will be provided. Some case studies will highlight how to use these tools to build a real robot; finally, a short overview on swarm robotics will be given, showing how to exploit ROSEN to simulate these kind of systems.

Workshop Outline:
  • Issues in autonomous mobile robot programming
  • The robotic framework
  • ROSEN
  • Gluing ROSEN with the robotic framework
  • Case study: building a simple robot together
  • A step forward: using ROSEN to simulate swarm robotic environments.


Erlang & Robotics: The ROSEN Framework at the Eurobot 2008 Competion

Corrado Santoro
Corrado Santoro

This talk will describe ROSEN, an Erlang robotic framework and simulation engine developed by the University of Catania. It is characterised by a layered architecture able to separate the various concurring tasks controlling the system into different modules. The framework is based on OTP principles, making a strong use of behaviors in order to separate generic functionalities from the peculiarities specifics of the robot being implemented. ROSEN and the Robotics framework is based on experiences of competing in the Eurobot competitions in 2006 and 2007, where robots played funny golf and collected materials to be recycled. The talk will end with a case study and video of the Mission to Mars 2008 Eurobot competition, where the team have built robots collecting proof of life on Mars, and bring it back to earth.


Erlang & Tail-F

Claes Wikström
Claes Wikström

Tail-f is an advanced tech company, that owes its great success to Erlang. Tail-f builds a toolkit/library which we sell to networking device manufacturers such as Qualcom, Nortel, Alcatel and Ericsson.

All devices, such as switcher, routers, VPN gateways etc need to be managed. Traditionally all manufacturers of networking equipment bought their SNMP agents as COTS software and built the CLI and the WebUI in house. This situation was changed when the NETCONF protocol was introduced in 2006. An XML based protocol, backed by Cisco and Juniper, the NETCONF protocol provides a strict machine-machine interface through which a network device can be managed, configuration data information can be retrieved, new configuration data can be uploaded and manipulated.

The Tail-f ConfD product provides a toolkit, which if used on the network device, dynamically renders all four necessary northbound interfaces, e.g. NETCONF, CLI, WebUI and SNMP.

In this talk on Erlang and Tail-f, Klacke will describe and discuss Tail-f's technical strategy, which leveraged the power of Erlang technology to achieve fast time to market, whilst delivering a piece of software small and fast enough to enable successful deployment on low end networking devices.


Erlang Enterprise Integration Panel Discussion

Garry Bulmer
Garry Bulmer

Erlang is not an island; the modern IT infrastructure includes a broad range of applications, middleware, protocols and services. To exploit its full potential, we need to understand how Erlang integrates within that IT environment. This session provides a Blueprint Architecture for evaluating your integration needs, and then moves onto a panel discussion covering where Erlang can be beneficially deployed.

Our panel of experts will discuss their approaches to integration, and highlight the areas where Erlangs unique benefits come into their own. Please bring your own war stories, or questions to learn about the first new Enterprise-Ready technology of this millenium.

Topics will include integration with Java, .NET, Web Services, traditional API’s, Messaging and Middleware, as well as proprietary and standard protocols.


Erlang and Ajax Web Applications

Roberto Saccon
Roberto Saccon

Erlang and Ajax Web Applications Today web development is dominated by PHP, ASP, RubyOnRails and numerous Java frameworks, most of them focus on serverside HTML generation. Web developers start to become aware of Erlang, but the majority doesn’t feel yet the need to leave their easily learned and simple to use language or framework. Any attempt to write a web framework in a functional language so far mostly managed to attract only developers which were already familiar with that specific language. But next generation Ajax Web applications are different and have different web server and framework requirements and fortunately this requirements match very well with what Erlang has to offer.


Erlang in Financial Applications

Dr. Erik Stenman
Dr. Erik Stenman

Erlang in E-Commerce and Banking
Kreditor provides creative payment solutions to Internet shops. We are basically a bank specializing on E-commerce, providing secure transactions between consumers and on-line stores.

Our business model puts high demands on our system in terms of availability, throughput and security. At the same time we constantly introduce new features, staying ahead of or competition by doing very rapid development and having an extremely short time to market.

In this Erlang session talk I will present our business model, our system architecture and our development method. I will also tell you how we have taken advantage of Erlang in order to, in just three years, become Sweden\'s leading provider of invoicing and installment plans over the Internet.


Erlang- D-Trace

Garry Bulmer
Garry Bulmer

DTrace provides unique capabilities. It can be used to observe, monitor, measure and debug end-to-end systems in production, as well as during test and development. When not actively monitoring, DTrace has virtually no overhead. DTrace is able to simultaneously observe multiple applications and the underlying Operating System kernel, correlating events and resource usage throughout a system. Dtrace can observe the internal behaviour of traditional programs without access to source. Further, application developers have provided easy-to-use observation into applications written in Java, Ruby, Php, etc. as well as observing the behaviour of queries in database like PostgreSQL and MySQL, all the way back to the \'Web 2.0\' JavaScript running in Firefox and onto Apache.

This Erlang eXchange talk describes Erlang-DTrace as it is implemented, then moves onto show how to use it to monitor multi-tier applications using Erlang and other application technologies.


Erlang/OTP Vs Google App Engine, The CEO View

Gordon Guthrie
Gordon Guthrie

Gordon Guthrie will look at the business decisions about using the Erlang/OTP A/S or the Google Application Engine A/S by placing them in a historical business context and looking at the evolution of the IT industry from a cost, business model and structural perspective.

This session is aimed at entrepreneurs thinking about building a business on Erlang/OTP.


Introducing Erlang to Motorola: The Journey to Success

Nicholas Gunder
Nicholas Gunder

Torben Hoffman
Torben Hoffman

Nicholas will explain how two engineers in Motorola were able to persuade top management to move Erlang out of the labs and into real telecommunications projects. First looking at the initial ideas and reasoning for using Erlang inside of Motorola, this presentation will then dive deaper into some of the organisational and technological issues associated with deploying a new development language in a large company. Two projects will be highlighted, each were used as powerful case studies to convince people to see Erlang as an enabler to higher productivity and better quality. The nature of our systems as concurrent, real time and distributed beasts will also be covered and how this matches up with the strengths of Erlang/OTP.

Motorola Denmark is the center of excellence for worldwide TETRA engineering. You can read more about what we do in detail here: http://www.motorola.com/tetra


Introducing Seedcamp

Reshma Sohoni
Reshma Sohoni

Reshma is the CEO of SeedCamp, a new kind of incubator which aims to provide a catalyst for Europe’s next generation of entrepreneurs through the provision of seed capital and a world class network of mentors.


Introduction using Faxien & Sinan: Erlang Project Build & Packaging Systems

Martin Logan
Martin Logan

Eric Merritt
Eric Merritt

In this talk you will learn how to install the tools and how to generate and start a project singen, build.cfg, and compilation. Eric and Martin will also provide an intro into working with erlware tools during build Building and testing with Sinan, versioning and locally installing library applications so Sinan picks them up as dependencies. They will then cover how to publish code Creating releases, package format conventions, control files, the package maintainer role, publishing with Faxien. Finally, you will learn how to install and use production releases, how to install and use them.


Keynote: Armstrong on Software: Erlang & SMP

Joe Armstrong
Joe Armstrong

The world is concurrent - but most applications are written in sequential programming languages. This makes programming artificially difficult. From the very beginning, Erlang is designed to program concurrent, scalable distributed applications.

During this keynote, Joe Armstrong, principle designer of Erlang, will describe why Erlang was created and what kind of applications Erlang is suitable for.

This talk will look at
  • The challenges and opportunities for making highly reliable scalable software
  • The Erlang approach to concurrency and fault-tolerance
  • How Erlang can exploit the power of modern multi-core CPUs

This talk will be a mixture of science and technology, peppered with real-life success stories from the Erlang world.


Keynote: Enterprise Integration

Steve Vinoski
Steve Vinoski

What happens when someone who works on enterprise integration tools and solutions for years steps back and takes a good look around? He realises just how poor many enterprise integration systems really are. In this talk, Steve will describe his experiences building RPC, CORBA, J2EE, and Web Service (SOAP/WSDL) systems over the course of nearly 20 years, how the Web is finally influencing enterprise integration for the better, and how he’s realized in hindsight just how much Erlang could have greatly helped the situation.


Load Testing of Web Applications

Karthik Ramachandra
Karthik Ramachandra

Load testing of web applications is typically done to understand the load characteristics the application can handle, to configure the hardware and the deployment architecture to allow the web application to handle a higher load. If an application has to scale to millions of users, performance testing becomes mandatory. This implies that the tool used for testing must be scalable in the first place in order to simulate the expected loads. Karthik explains why Erlang is the language of choice for scalable and highly concurrent applications.

This talk covers:
  • Performance testing of web applications – challenges and approaches
  • The erlang approach in detail
  • Demo of the experiment
  • Future directions and lessons learnt


Presenting RabbitMQ: An Erlang Based Implementation of AMQP

Matthias Radestock
Matthias Radestock

Matthias and Tony will be presenting on RabbitMQ, an Erlang implementation of AMQP, the emerging standard for high performance enterprise messaging. Erlang is well known delivering a highly scalable and stable environment for applications that involve messaging. When JP Morgan Chase and others introduced AMQP, a new standard l4 protocol for busisness messaging and integration, Erlang seemed an obvious choice. This talk will explain the business rationale of this decision in detail and describe the technology and architecture of the ensuing product, RabbitMQ. Today, RabbitMQ is used in solutions across multiple languages and platforms such as Java, Linux, C# on .net, Python and of course Erlang. For people who want to benefit what Erlang brings to the table, products that implement a protocol as their API seem to be delivering value.


QuickCheck Tutorial: Using QuickCheck to Test Erlang Programs

Thomas Arts
Thomas Arts

QuviQ AB
John Hughes
John Hughes

Quviq AB
QuickCheck is an automated testing tool which addresses these problems by generating test cases from a concise specification (so that many more cases can be tested), and simplifying failing cases to a minimal example on a test failure (so that fault diagnosis is quick and easy). QuickCheck enables developers to dramatically improve test coverage, and find obscure errors at an earlier stage, lowering costs and improving quality as a result.

In this tutorial, John Hughes and Thomas Arts will use examples to show how developers write QuickCheck specifications—which are actually Erlang programs using the QuickCheck API—and use them to test code written in Erlang or other programming languages. We will show how QuickCheck’s shrinking finds tiny examples that provoke errors, making the step from observing a bug to diagnosing it very short indeed, and we will show how property driven development can produce code that is solid from the word go.


QuickCheck for Erlang

John Hughes
John Hughes

Quviq AB
Testing is a major part of all software development. Yet no matter how much effort is spent on it, some errors always seem to slip through. Cases which no-one thought to test crash systems late in development or out in the field, revealing errors which cost time and money to analyze, diagnose, and fix. In the worst case, such errors reveal fundamental flaws which force a redesign of part of the system, at disproportionate cost.

In this talk we present QuickCheck, a tool which addresses these problems by generating test cases from a concise specification (so that many more cases can be tested) and simplifying failing cases to a minimal example on a test failure (so that fault diagnosis is quick and easy). QuickCheck enables developers to dramatically improve test coverage, and find obscure errors at an earlier stage, lowering costs and improving quality as a result. QuickCheck success stories include major telecoms products such as, radio base stations and media gateways.


Roktalk, Erlang Powered Mobile Conferencing

Jay Fenton
Jay Fenton

Howler has a number of products in development, and uses Erlang/OTP "wherever it makes sense" - which happens to often be the case! His talk will focus on ROK Talk™, a conference calling application for mobile phones, the backend for which is 100% Erlang/OTP-based.


Tsung Tutorial

Mickaël Rémond
Mickaël Rémond

This Tsung tutorial will present the fundamental concepts underlying Tsung architecture and will provide the required knowledge to write relevant benchmark scenarios. You will then learn how to create a scenario to benchmark an example web application and how to analyse the results of the benchmark.


Using Jinterface to Bridge Erlang and Java

Dennis Byrne
Dennis Byrne

As Erlang gains speed we are finding more and more opportunities to integrate it with legacy systems built on other programming platforms. A large share of these legacy systems have been written in Java, making JInterface a valuable tool in the enterprise. This session will present an in depth look at the Jinterface API and how it bridges the functional world of Erlang with the object oriented world of Java. This Erlang session will also highlight the very different approaches to concurrency offered by the two platforms, with an emphasis on when and when not to use either.


Wrangler, The Erlang Refactoring Tool

Simon Thompson
Simon Thompson

Creator of Erlang's popular Refactoring tool Wrangler, Simon Thompson is Professor of Logic and Computation at the University of Kent and a well-known expert on Functional languages. A long-term contributor to the Haskel and Erlang communities and author of many popular books, including "Haskell: The Craft of Functional Programming", his work covers many aspects of functional programming and logic in computer science (you can find out more details here) for Erlang and also for Haskel.


ejabberd for web 2.0 development

Mickaël Rémond
Mickaël Rémond

Based on real life examples, this talk will present several use cases of ejabberd in the context of highly scalable web application. The talk will first focus on the features that make ejabberd a dream tool for the development of highly interactive web applications. Mickaël will then talk about two major Real World User Cases:
  • Building highly interactive web sites for sport events to increase the community loyalty (Major League of Baseball) and
  • high-performance microblogging platform (Twitter)