TwistingTwists
Journal : Designing Elixir systems with OTP
This is my Journal for readings on Designing Elixir Systems with OTP.
Will post chapter 01 tomorrow! Stay tuned!
Most Liked
AstonJ
Nice one TT! Another book I am interested in reading at some point! ![]()
3
TwistingTwists
Chapter 01
Concepts / RE-Thinks:
DFTwBLWB : Do Fun things with Big Loud Worker Bees - acronym to think about layering application.
DFT = for building blocks of project
BLWB = for letting components work together.
Why layers?
- Testing each component with SIMILAR functions together (because they are grouped together! )
- Healing - supervisors
- the concept is (called
lifecycle) as simple as turn-off the TV and restart tofixit! - So, shut down CLEANLY (note,emphasis)!
- the concept is (called
Managing state :
- recursion and message passing to manage state.
- This is new! = message passing is usually an advanced concept and not ‘generally’ used to manage state, unless - Elixir or MVC model.
3
TwistingTwists
Chapter 02 : Know Your Elixir Datatypes
Types and pro-cons
| DataType | Properties | Pro | Cons |
|---|---|---|---|
| Atoms | are integer + constant + NOT garbage collected | use = name concepts + constant tables type lookup | NOT convert user-input to atom |
| Arrays = NOT in Elixir! | - | random access is cheap + traversing O(n) + | |
| Lists | NOT arrays! + singly linked-lists + | pattern matching on head is O(1) | Appending at END of lists or LARGE lists |
| Maps | random access O(log n) => useful for heavily edited data | use MapSet when only Keys (uniqueness) | |
| Strings | are binaries => efficiently stored + copy is a FULL copy (unlike lists) | DO NOT LET processes hold references to long string => may cause memory leaks + NOT use long strings for storing info + DONT concatenate | |
| Tuples | fixed length data structure | use for tagging data + read chunks of data like csv | slow append => don’t edit (if need to, use Maps) |
| Functions | send function to data, NOT data to function | ||
| PATTERN matching | allows multiple dimension inheritance (sort of) => better than inheritance!! |
3
Popular Community topics
My first contact with Erlang was about 2 years ago when I used RabbitMQ, which is written in Erlang, for my job. This made me curious and...
New
So I have enough money to last a year. Realistically I’m still going to have to work part time painting. I’m so done with it though!
I h...
New
Crystal recently reached version 1. I had been following it for awhile but never got to really learn it. Most languages I picked up out o...
New
I am going to dump my thoughts, methods, codes, experiences and rants while learning OCaml into this thread.
This is probably the 5th or...
New
My overall initial first impressions of this book are very good.
I will document my local spacemacs setup to as I work through the book.
New
The very first time I’ve seen a line of Elixir I was in awe. Coming from Ruby the syntax was familiar.
But I wanted to know what was thi...
New
TL;DR I am reading “Domain Modeling Made Functional” and discussing and keeping a journal of what I learned from it, any co-readers welco...
New
This is my Journal for readings on Designing Elixir Systems with OTP.
Will post chapter 01 tomorrow! Stay tuned!
New
In Aborting Multiple Fetch Requests with One Signal section, the code in abort/abort_ex09.js doesn’t show the downloaded images until Pro...
New
Hello all.
Creating this space here for general discussion and chat about Powerful Command-Line Applications In Go
In particular, we ca...
New
Other popular topics
Please tell us what is your preferred monitor setup for programming(not gaming) and why you have chosen it.
Does your monitor have eye p...
New
I know that -t flag is used along with -i flag for getting an interactive shell. But I cannot digest what the man page for docker run com...
New
Rust is an exciting new programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters...
New
Just done a fresh install of macOS Big Sur and on installing Erlang I am getting:
asdf install erlang 23.1.2
Configure failed.
checking ...
New
A Brief Review of the Minisforum V3 AMD Tablet.
Update: I have created an awesome-minisforum-v3 GitHub repository to list information fo...
New
If you’re getting errors like this:
psql: error: connection to server on socket “/tmp/.s.PGSQL.5432” failed: No such file or directory ...
New
Get the comprehensive, insider information you need for Rails 8 with the new edition of this award-winning classic.
Sam Ruby @rubys
...
New
Explore the power of Ash Framework by modeling and building the domain for a real-world web application.
Rebecca Le @sevenseacat and ...
New
Ok, well here are some thoughts and opinions on some of the ergonomic keyboards I have, I guess like mini review of each that I use enoug...
New
Open-source implementation of the classic GTA engine now running directly in your browser. Experience the reVC technology demo on DOS.Zon...
New
Categories:
Sub Categories:
Popular Portals
- /elixir
- /rust
- /wasm
- /ruby
- /erlang
- /phoenix
- /keyboards
- /python
- /js
- /rails
- /security
- /go
- /swift
- /vim
- /java
- /clojure
- /typescript
- /emacs
- /haskell
- /svelte
- /onivim
- /kotlin
- /react
- /c-plus-plus
- /crystal
- /tailwind
- /gleam
- /ocaml
- /elm
- /vscode
- /flutter
- /html
- /deepseek
- /ash
- /zig
- /opensuse
- /php
- /centos
- /react-native
- /scala
- /lisp
- /sublime-text
- /textmate
- /nixos
- /debian
- /deno
- /agda
- /django
- /kubuntu
- /nodejs
- /arch-linux
- /ubuntu
- /spring
- /revery
- /manjaro
- /julia
- /diversity
- /lua
- /quarkus
- /laravel









