Erlang Spawned Shelter
I am building a web like Superhero.js but for Erlang. I will add only the links I find interesting from ErlangBookmarks.
After having a first working version I will start adding Elixir resources. Check Robert Virding Erlang/Elixir communities to know why.
Why Erlang?
- Real Time Bidding. Where Erlang Blooms - Fred Hebert
- When would you choose Erlang? - Brian L. Troutwine
- The Joy of Erlang; Or, How To Ride A Toruk - Evan Miller
- Erlang is not a Concurrent Functional Programming Language - Kresten Krab
- Reliability Features of Erlang - LambdaLounge Krakow 2013
- The Functional Revolution in C++ - Bartosz Milewski - Although the article is about C++, it addresses the problems solved by Erlang design decisions
Erlang compared to others
Introduction
- Learn X in Y minutes Where X=erlang
- An Open Letter to the Erlang Beginner (or Onlooker) - Fred Hebert
- Dabbling in Erlang, part 1: Hello function - Agis Anastasopoulos
- Dabbling in Erlang, part 2: A minimal introduction - Agis Anastasopoulos
- On Erlang's Syntax - Fred Hebert
- Parallelism /= Concurrency - Simon Marlow
Introductory Books
Erlang design choices
- Making reliable distributed systems in the presence of sodware errors - Joe Armstrong
- Why Erlang syntax is not based on LISP s-expressions?
- It's About the Guarantees - Fred Hebert
- Sequence and Order in Erlang - Dennis Byrne
- The Road we didn't go down - Joe Armstrong - Discussion about RPC
Debugging, tracing and logging
- Taking the printf out of printf Debugging - Mats Cronqvist
- Tracing Erlang Code
- Debugging with the Debug Helper
- Eper - Redbug Manual
- lager
- recon
Testing
Performance
- System Limits - Erlang
- Erlang String Handling - How to be efficient at handling string data in Erlang - Jesper L. Andersen
- How WhatsApp Grew To Nearly 500 Million Users, 11,000 Cores, And 70 Million Messages A Second - High Scalability
- Erlang is slow: and other rubbish - Yuki Izumi
- A Deeper Look at Tails Recursion in Erlang - Programming in the 21st Century
- Why Garbage Collection Paranoia is Still (sometimes) Justified - Programming in the 21st Century
- Erlang, Binaries, and Garbage Collection (Sigh)
- Scaling Erlang - Inaka Networks
- Social Platforms in Erlang - Lessons Learned
- Eliminating Single Process Bottlenecks with ETS Concurrency Patterns - Jay Nelson
- Erlang Web Server Benchmarking - Steve Vinoski
Percept2
- Percept 2 - an enhanced version of the Percept profiling tool from the Erlang/OTP distribution
- Profiling Erlang programs using Percept2
- Profiling with Percept2 - Huiqing Li
- Multicore Profiling for Erlang Programs Using Percept2
- Multi-level Visualization of Concurrent and Distributed Computation in Erlang
BEAM Internals
- The BEAM Dispatcher - Happi Blogging
- The Erlang Tagging Scheme - Happi Blogging
- How Erlang does scheduling - Jesper L. Andersen
- Understanding the Erlang Scheduler
- OTP internal documentation
- Live Podcast on VM - Mostly Erlang
- Understanding the Erlang Scheduler - Lukas Larsson
- Hitchhiker's Tour of the BEAM - Robert Virding
Code Design and refactoring
- Erlang and code style - Jesper L. Andersen
- A comparative study of refactoring haskell and erlang programs - Huiqing Li and Simon Thompson
- How do you handle spurious messages?
A trip from nested cases returning arbitrary {error, Reason} to monads
- 9 Erlang pitfalls you should know about - MazenHarake
- Let it crash the right way - MazenHarake
- Monads in Erlang - Alex Kropivny
- Can you hear the drums, Erlando? - Matthew Sackman
- Don't fear the Monad - Brian Beckman
- The First Monad Tutorial - Phillip Wadler
- Comprehending Monads - Philip Wadler
Tools
Talks
Erlang wants to talk to the outside world!
- Getting Erlang to talk to the outside world - Joe Armstrong
- erl_nif
- Writing an Erlang port using OTP principles - Erlang Central
- How to implement a driver
- Ports and Port Drivers
- Ports
- Port drivers
- ErlPort
- Haskell - Interfacing Erlang
Comparison to other languages
Functional Programming
- Why Functional Programming Matters - John Hughes
- Everything Your Professor Failed to Tell You About Functional Programming - Shannon Behrens
- Purely Functional Data Structures - Chris Okasaki
Events
- Erlang Factory
- Erlang DC
- Erlang User Conference
- StrangeLoop
- LambdaJam
- Erlang Solutions Youtube Channel
General tools
- mixer - Mix in functions from other modules
- Extending the Erlang Shell - Ulf Wiger Part 1 Part 2
- Adding Live updates to your Erlang library - Alex Kropivny
- Solving Embarrasingly Obvious Problems in Erlang - Garret Smith
- Troubleshooting Down the Logplex Rabbit Hole
Webservers
Network Servers
- Build an FTP server in 30 minutes with Ranch - Talk - Loic Hoguin
- Build an FTP Server with Ranch in 30 Minutes - Article - Loic Hoguin
- Building a non-blocking TCP server using OTP principles - Serge Aleynikov
Json
Json Helpers
- ej - Helper module for working with Erlang terms representing JSON
- Introducing ej, an Erlang JSON helper library
Network Clients
Parsing
- Parsing in Erlang
- Making Parsers with Yecc - Wikibooks
- Write a Template Compiler for Erlang- Evan Miller
- Building a Parser-Generator in Erlang - Sean Cribbs Part1 Part 2 Part 3 Part 4 Part 5
- Neotoma - Erlang library and packrat parser-generator for parsing expression grammars
History
Other resources
- Mostly Erlang - Erlang podcast
- Erldocs
- On HTTP Load Testing - Mark Nottingham