Jozsef Vass shares how Discord handles 2.5 million concurrent voice users using WebRTC. tl;dr 850 voice servers in 13 regions running Elixir doing service discovery with etcd. They also have an elegant method of handling DDoS attacks and failover. Read through the system design - it’s so good.
Artur Śmiarowski wrote an in depth piece about keeping your code simple and maintainable in 23 guidelines for writing readable code. The Reddit discussion that follows is quite interesting, and shows diverse opinions on OOP topics and things like code reuse. Artur pushes for simple, well-thought-out code that is engineered before being written. Even if you disagree with some of his guidelines, it’s still a thought provoking piece.
Dan Abramov regrets focusing on explaining Redux’s API over its conceptual underpinnings. It’s fascinating to consider being so successful on the adoption front for your software yet feeling like you made a mistake in the introduction. The Twitter thread is stuffed full of discussion of Redux tactics as well.
Redis 5 introduces the LOLWUT command. It’s a command that does nothing useful, and is just for fun. All future major releases will change its behaviour. It’s important to remember that programming can be enjoyable on its own. Don’t let bugs and maintenance issues make you forget what made you love it in the first place.
Hacktoberfest 2018 is coming soon! Hacktoberfest is a month-long celebration of open-source software hosted by DigitalOcean. If you’d like to discuss projects or collaborate with us, hit reply!
Boyd Multerer (founder of Xbox Live) introduced Scenic: A Functional UI Framework for Elixir at ElixirConf 2018. His talk goes into great detail about the project, and you can find the code on GitHub. If you’re looking for summaries of ElixirConf 2018 more generally, here are some notes.
GopherCon 2018 Videos are out. Get your go on.
PostgreSQL 11 introduces Just in Time query compilation, which makes postgres almost 30% faster.
Brandon Weaver helps you understand transducers in Ruby. Learn more about transducers both generally and in Ruby. tl;dr Transducers are composable, efficient data transformation functions which don’t create intermediate representations. The article builds them up from Ruby primitives.