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

Elixir for Ruby devs

Vitaly Kushner
Vitaly Kushner

Elixir is the new exciting language built on top of Erlang's excellent BEAM VM.

Its modern, with tons of great features like complete homoiconicity with hygienic macros. Oh, and it has a Ruby-inspired syntax too, which makes it particularly interesting to Ruby developers, but not only.

Long time Erlang users should take a look at Elixir. It is a more powerful language (macros, remember?) that doesn't sacrifice any of the core Erlang advantages.

I hope to get you excited as much as I am, and hopefully consider Elixir for your next project.

Talk objectives: 
Convince audience that:
- erlang is cool
- syntax is important
- elixir has better syntax
- elixir is erlang++

Target audience: Ruby/Rails developers interested in Erlang and other developers that tried to learn Erlang but found its syntax confusing. 

Erlang - Concurrent Language for Concurrent World

Zvi Avraham
Zvi Avraham

Paraphrasing Joe Armstrong - one of the inventors of Erlang programming language: "We live in Concurrent World, so we need a Concurrent Language".

Similarly to the term OOP he coined the term COP, which means Concurrency-oriented Programming.

Talk objectives:
  • Explain why Erlang is the answer to multithreaded programming and multicore revolution.
  • Discuss basic principles and trade-offs used in Erlang software.
  • Functional (Sequential) Erlang.
  • Actor Theory and Concurrent Erlang.
  • How Erlang VM and hot code reloading works.
  • How Erlang communicates with "External World".
  • Talk about Erlang tools and new languages implemented on top of Erlang VM.
  • Where Erlang is a good fit and where is not.
  • Erlang community and ecosystem.
Target audience:
  • Software Developers looking to expand their horizons.

GPU-accelerated Geospatial Timeseries Database with Riak

Zvi Avraham
Zvi Avraham

In this talk, Zvi will share his experiences in developing a prototype of GPU-accelerated Geospatial Timeseries Database with Riak.
The words "Geospatial" and "Timeseries" simply means that each datapoint stored according to it's time and location.
The system allow to Acquire, Aggregate, Process and Query both Realtime and Historical Timeseries Data.

Talk objectives:
  • Explain why Realtime Timeseries Data is important in the era of Big Data and Internet of Things.
  • Discuss different database workloads and query types.
  • Discuss Row vs. Column data stores.
  • Give Intro to Riak and GPU programming using OpenCL.
  • Show how to use OpenCL from Erlang to speedup computations: benchmarking pure-Erlang, NIF (Native C) and OpenCL code.
  • Data Aggregation using time-boxing.
  • Data Processing and Querying using Map/Reduce.
  • Show how to process on GPU non-numerical data, such as tweets.
  • Live demo: twitter streaming data processing and querying.
Target audience: 
  • Erlang developers and NoSQL database users.

Generic Programming!

Malcolm Matalka
Malcolm Matalka

Klarna AB
Over the last two years Klarna has been developing the next generation of its purchase taking system.  The requirements of the new system include performing everything the legacy system can do while being horizontally scalable and fault tolerant.  One solution is to rewrite the system from scratch but we chose to refactor portions of the legacy system such that they could run on both and eventually move completely to the new system.

Generic programming has played a fundamental role in how portions of the codebase are refactored  in such a way that code is portable between the two systems while seamlessly being customizable to the specifics of each system.  This talk will present the overall philosophy, how to structure the code, how to manage the configuration, the relationship to ML functors and Erlang's strengths and weaknesses in generic programming.

Talk objectives: After this talk attendees will understand some techniques for implementing generic programming in Erlang with real world examples from Klarna's production payments system.

Target audience: This talk is applicable to developers of all shapes and sizes, however those familiar with Erlang will likely get the most from it.

Introduction to Riak; a Distributed, Masterless, Fault-Tolerant, NoSQL Database

Joel Jacobson
Joel Jacobson

Basho Technologies
Riak is the massively scalable, highly available, NoSQL database that everyone is turning to in order to back their web-scale operations. Created by Basho, written in Erlang, and published under the open source Apache licence, Riak is in use at some of the world's largest companies. 

Talk objectives: Come away with an understanding of: what Riak can do for you what uses cases Riak is suited to how to get started with Riak some examples of how Riak is used elsewhere.

Target audience: people taking the first steps into looking at NoSQL databases and who are looking to build applications where scalability and availability are the priority.

OTP - A Framework for Reliability

Zachary Kessin
Zachary Kessin

Product Structure
Erlang's legendary fault tolerance requires a world class framework to make services that  can perform well. When building the initial phone switches Ericsson realised that they needed a standard way to do things. 

To do this they created a set of behaviours that enable a programmer to create services quickly and easily in erlang. We will explore how to use the basic interfaces of OTP to build a server and set it up so that it will recover from faults.

Programming with Functional Style

Michael Snoyman
Michael Snoyman

Functional programming is becoming very popular today. Many languages tout themselves as functional. But what does it mean for a language to be functional? Does some feature of the language magically imbue any program written in that language with functional properties? This talk will explore what constitutes functional style, why some languages get the term functional, and how the functional paradigm can help you write better code.

Scalable Instant Messaging

Alexander Fok
Alexander Fok

ooVoo’s instant messaging solution is an Erlang-based implementation of XMPP server (eJabberd) with focus on performance and scalability. Specifically designed for high end service provider’s purposes, it is fault-tolerant, distributed and can utilize resources of multi-core CPUs. It provides support for multiple client platforms, including WebSockets, reliable message delivery in mobile networks and in-game multi-user chats. Its modular architecture allows customizing it to cater to specific needs like in-house authentication or application-specific traffic such as VoIP signaling. Alexander Fok, System Architect at ooVoo, will present ooVoo’s implementation of highly scalable and high performance messaging solutions. The presentation will cover:
- eJabberd – current service implementation
- Front End Notification – a Websocket server that allows to maintain very big amount of concurrently connected Web clients with 2 way communication channel open that natively extends eJabberd capabilities

Taking Documentation to the Next Level in Young Software Projects

Andy Oram
Andy Oram

O'Reilly Media
Most free software projects, as well as companies releasing APIs or other software, want to provide good documentation to attract and support developers and users. With reference to a few examples from online Erlang documentation, this talk suggests why it's so hard to create usable documentation and discusses some directions to go in, such as finding users who can write helpful documents, checking quality through A/B testing, and providing pathways through documents.  The focus will be on documentation for programmers, because resources for such documentation are very limited, but anything that aids wider adoption can foster innovation.

Talk objectives: 
1. Get the audience thinking more about the role of documentation and training in their own software projects.
2. Encourage the audience to take steps to improve the documentation for the programmers who use their software.

Target audience: Anyone who participates, as a developer or user, in a software project that delivers libraries or tools to outsiders

Testing what should work, not what should not fail

Samuel Rivas
Samuel Rivas

Klarna AB
When evolving software we may introduce new corner cases that can pass unnoticed through the test cases in our automated test suite. Since developers rely on other's test suites when changing their code, the more developers work on a module, the more likely it is they slip a bug trough the test suite; that's something we though we had to live with. However, property based testing is emerging as a new hope, our last experiences say that it helps to create test suites more robust to software evolution without forcing us to write tons of "just-in-case test cases."

Talk objectives: The talk aims present the benefits of property based testing in modern software engineering, compared to the traditional way of unit testing using static test cases.

Target audience: Software engineers wit testing experience, preferably with erlang background, but that is not required. Property based testing is not requried.