School of Erlang (Spring 2020)
* 4 Wednesdays, starting from the 18th of March (last meeting date to be discussed)
* To join complete a form: https://docs.google.com/forms/d/e/1FAIpQLSc93KEequBml-j5FBZqYuk9_QIgL6FoFhcll8c4qYnvl5F8eQ/closedform
* Chosen candidates will receive invitations by 13.03
* Your own laptop with Linux or MacOS is required (if you use Windows, please set up a virtual machine with Linux)
* Erlang (21.3 or newer if possible), rebar3, git (in case of troubles I'll be sending some tutorials about setting up these)
Think back ten years, it's 2010, the start of a new decade and a friend has just asked you to download this new thing Whatsapp to stay in touch. Fast-forward to today and Whatsapp is the most popular instant messaging platform on the planet, having just passed 2 billion active users, and, it's built-in Erlang. On-demand culture means there is an instant messaging solution in almost all your apps, your dating app has a chat, your bank has a chat, all your social media have chats, your favourite games have chat... You probably even speak to your boss, parents and grandparents using instant messaging. And chat solutions are growing in both numbers and features constantly. So what are you waiting for? Why haven't you built a chat system yet? If the answer is, I don't know how, School of Erlang is here to help. You'll learn how to build a chat solution, in Erlang (just like Whatsapp did) in just a few hours (and virtually for free).
1. From the functional programming perspective:
* Understand classic functional operations like list functions (fold, map), and pattern-matching.
* Learn how immutability can be most often used as a feature!
2. From the Erlang perspective:
* Understand supervisors and supervisor strategies
* The possibilities that spawning any uncountable amount of tiny processes gives.
3. From the project perspective:
* Have an instant messaging server through which you can chat with friends.
* At the very least, you should be able to open a connection through `telnet`. And then the interface could be for example establishing a nickname to connect with, and then sending messages in some format we agree on, with a recipient list and a message body.
* As a stretch goal, we’ll aim to cluster several nodes on MongooseIM, our open-source instant messaging solution.