
February 9, 2013 / Washington, DC
Watch videos from the talksAn Epic One-Day Erlang Conference in Washington, DC
|
Blog: jlouisramblings Twitter: @jlouis666 GitHub: jlouis |
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.
Jesper is a Danish programming language geek who is now heading up the Erlang Solutions Copenhagen office. Jesper has programmed in numerous different programming languages. He has a keen interest in weaving functional programming with parallelism and concurrency. He likes to try out new ideas from theoretic research by finding a real-world application and building a system around the idea in order to evaluate its usefulness. In the process he likes to apply knowledge from different areas of mathematics and computer science and he has a curiosity for anything new.
He is the principal programmer and leader of two open source projects, implementing the BitTorrent Peer-to-peer content distribution protocol in Haskell and Erlang respectively. He also leads the "safetyvalve" project for load management of Erlang nodes.