1000 Actors, One Chaos Monkey and... Everything OK
| This is a pure live demo without slides. I fire up an Erlang VM instance, in which I'll activate 1000 parallel actors. Then I'll send out a chaos monkey to produce unpredictible and partially critical situations in the system. During the demo I'll explain, how this situations are being managed and solved in the running system. Also, the basic mechanisms of the Erlang VM as well as relevant parts of the ecosystem will be explained. Talk objectives: Explain Erlang approach to parallelism and OTP supervision through live demo Target audience: Developers, Erlang newbies Github repo: https://github.com/pavlobaron/neo_vs_smith |
| This talk presents two systems developed in Erlang at Morgan Stanley. One of them is a general resource management platform. It is a distributed system prepeared for managing a large number of different resources, like web applications, Unix processes or virtual machines. The system manages 70 000 different resources and has to be stable and highly available. The talk presents how we used Erlang to build this system and the major challenges we had to deal with. The other one is a load balancer for kdb+ server farms. It works in the application layer. Understands all the kdb+ transport protocols (http, websocket and native kdb+ IPC) and routes request individually. This software must be scalable, fault-tolerant and has soft real-time requirements. The talk describes the design of the system, showing some advantages and disadvantages of choosing Erlang. Talk objectives: To present insights Morgan Stanley's approach to Erlang systems Target audience: All developers interested in finding new angles for issues specific to financial services software development |
Extending Erlang by utilizing RefactorErl
| RefactorErl is a widely known refactoring tool for Erlang. It is very good at static source code analysis as well as at program transformations. So far we only created semantics-preserving Erlang-to-Erlang program transformations, so-called refactorings. Apparently, no one programming language has a syntax that fits everybody's desires. You can do your tricks with macros, and especially in Erlang, with parse transformations you can associate new meaning to constructs already present in the language. But what if this is not enough and you really wish to extend the language or introduce a syntactic sugar? We present a technique for customizing Erlang by building on the various features of RefactorErl. In particular, we demonstrate the method by implementing user-defined operators in Erlang by only changing a few lines in RefactorErl. Talk objectives: Give the idea of using a refactoring tool to extend a programming language. Target audience: Anyone interested in code analysis and code transformations. |
Indenting Erlang Code Automatically (in Vim)
| In 2007 I wrote the Erlang indentation for Vim. It is not smart enough, so I decided to make it smarter. At the conference I will present the challenges of indenting Erlang code. Talk objectives: To give the audience some general understanding of automatic indentation in text editors, and a high-level description and interesting corner cases of indenting Erlang code Target audience: Erlang coders and text editor enthusiasts |
| Many wonderful technologies show great potential but never really become mainstream. As an example of how this plays out for a specific technology this talk will look at the status of Erlang using the technology lifecycle lenses of Geofrey More and in particular discuss if Erlang is before, in or after the Chasm. The take aways are not specific to Erlang in any way, so this talk could probably be done talking about technology X, but it makes more sense to talk about technology management and evolution by looking at a case study. Erlang as a technology has a lot of wonderful features and it allows you to create high quality software using but a third of the effort required to develop the same thing in other technologies. Erlang fits multi-core and cloud settings very well in addition to being a very good fit for agile development. With all those things going for it, why is Erlang not the fastest growing language of them all? In order to make the exploration meaningful we will have a look at the different key strengths of Erlang and see what they mean for people at the managerial, architect and developer levels. With that in place we will look at the shortcommings of Erlang and its eco-system in order to get a feel for what lies ahead. Many wonderful technologies show great potential but never really become mainstream. As an example of how this plays out for a specific technology this talk will look at the status of Erlang using the technology lifecycle lenses of Geofrey More and in particular discuss if Erlang is before, in or after the Chasm. The take aways are not specific to Erlang in any way, so this talk could probably be done talking about technology X, but it makes more sense to talk about technology management and evolution by looking at a case study. Erlang as a technology has a lot of wonderful features and it allows you to create high quality software using but a third of the effort required to develop the same thing in other technologies. Erlang fits multi-core and cloud settings very well in addition to being a very good fit for agile development. With all those things going for it, why is Erlang not the fastest growing language of them all? In order to make the exploration meaningful we will have a look at the different key strengths of Erlang and see what they mean for people at the managerial, architect and developer levels. With that in place we will look at the shortcommings of Erlang and its eco-system in order to get a feel for what lies ahead. |
| A 10-minute Lightning Talk by Basho. |
Mongoose - Citizen of the World (Wide Web)
| MongooseIM is an Erlang-based implementation of the XMPP server. It provides a base platform for building messaging systems and has been successfully deployed and used for serving millions of online users. Talk will explain MongooseIM and how it fits into the modern Web. After this, I will describe the ways in which MongooseIM can be integrated with web pages using Websockets, like the example many people have already seen: the group chat on the ErlangCentral.org live streaming pages. Talk objectives: To show how efficient and easy it is to embed a (group)chat on your own website, including tight integration with modern frameworks and Content Management Systems Target audience: Webadmins, XMPP developers |
Taking the printf out of printf Debugging
| Debugging a realtime system is hard, especially if the bugs only appear on a live system. Debuggers cannot be used, and printf debugging is often deemed too risky. The Erlang runtime offers a way to do on-the-fly instrumentation on the function level through the erlang:trace/3 function. This talk will discuss the trace BIF and how to use it. It will also describe redbug, a user-friendly and safe interface to the trace BIF. War stories will in all likelihood be offered. Target audience: Developers and ops people, especially those working on large, embedded, real-time systems. |
Taming the Rabbit: Writing RabbitMQ Plugins
| 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. |
Zotonic, the Erlang Web Framework and CMS
| Zotonic is the open source, high speed, real-time web framework and content management system, built with Erlang. It is flexible, extensible and designed from the ground up to support dynamic, interactive websites and mobile solutions. Talk objectives: Give an introduction to Zotonic and show why Erlang and its design principles are a good fit for highly interactive, real-time web applications Target audience: Developers, Technical co-founders at startups |