One of the main advantages of using Cowboy is that it allows you to create very responsive applications in parts thanks to the Websocket technology. This live demonstration will explain you the steps to follow to write a basic chat application with Cowboy and Websocket.
Objectives: Learn how to use Cowboy and how to write HTTP and Websocket handlers. Find out how easy it is to write a dynamic web application starting from scratch.
Target audience: Opened to all. Erlang language knowledge preferable but not required.
With any new programming language or technology, you have the chicken-and-egg problem: "You need the experience to get the job, but you need the job to get the experience." In Erlang's case, There are two things that make this more acute: The kind of systems that Erlang is particularly good for are exactly the kind of systems that you don't want to be building if you don't know what you're doing; and Erlang is not like the other kids. If you're new to functional programming, it's a whole 'nother country, and Erlang has some unusual syntax and language features on top of that. We'll talk about how to get around these early hurdles, and why learning Erlang is its own reward.
This talk will discuss the backend implementation of the transaction and payment processing system for the Wingman mobile application. It will show how the requirements of high-demand mobile app interactions can be addressed via the creation of a RESTful API on top of a scalable server-based platform coded entirely in Erlang. It will conclude with a live demonstration where the operational backend will be published to Heroku's hosted service.
We all know Erlang as a language has certain limitations (for better or worse). It also makes you write a lot of boilerplate code. Sometimes we can put up with it, sometimes it's just annoying.
I've been looking into different meta-programming techniques to be used with Erlang. I've been using parse transformations a lot (and gave talks about them). But that wasn't enough for me. I've tried investing some time in Joxa (joxa.org, which is awesome, btw), but I found that it is a little bit more of a Lisp than Erlang. So I continued my search, and took another look at Elixir (elixir-lang.org), which I dismissed last year. It went through quite a transformation and, in my opinion, became a decent meta-compiler for Erlang that's not too far away from Erlang itself.
In this talk I'll show how you can program Erlang in a much more productive way — and common pitfalls to avoid.
For years, integration of sensors into IP networks has been wandering in the desert of OO languages, tight coupling, and poor reliability. The promised land of service oriented architectures supporting any and all integration standards has been elusive and out of reach due to poor support of the modern, mainstream languages. Reaching forward from the past, Erlang, with its roots in high-reliability telecom (i.e. network) application development has arisen to deliver networked sensor application development into the promised land. This talk will discuss the specific challenges faced by today's sensor networks in use by the commercial sector and military can be easily and appropriately handled by Erlang.
As the development team behind an anonymous social network that has become one of the fastest growing apps in the Apple Store, we'll do a detailed dive into the architecture of this very big Erlang/OTP app. The original architecture was Riak-based and in a series of dire moments we had to replace it with a SQL database due to TCP Incast, a network problem affecting Riak map/reduce under heavy load in certain network topologies. We'll talk about when and when not to use Riak. Our caching infrastructure, heavy use of gproc and pg2 for cross-server communication, socket connection infrastructure, novel use of Erlang processes in conjunction with Elastic Search for location based search, and scalable bayesian spam filtering will all be covered.
Erlang is an efficient tool when your problem includes I/O of any kind. Often it is the massive concurrency which is touted as a prime point. In this talk however, we use Erlang for its features of fault tolerance, isolation and rapid development. In fact, we claim that sometimes it is more important to limit an application, as to not overload foreign systems.
We present an application, QLGlicko, which scrapes Quake Live duels and ranks them according to the Glicko2 system. The idea is to rank players according to their strength, partially for bragging purposes, partially for match-making. Erlang is used for all parts: scraping the Quake Live website, ranking individual players, parameter optimization via simulated annealing and finally presentation in a web interface via Cowboy.
We describe why Erlang is a good fit for the problem and present an erlang-idiomatic approach to protecting the Quake Live site from overload. We describe how concurrency helps, even if the load on your system is fairly low. We describe how the system keeps stable due to isolation of concerns. And we briefly cover how we made sure the numerical stability of the ranking was adequate.