Index
A
- Abstract Syntax Tree (AST) / Built-in protocols
- abstract syntax trees
- about / Abstract syntax trees
- anonymous functions
- about / Anonymous functions
- pattern matching / Pattern matching
- Apple Mac OS X
- Elixir, installing on / Apple Mac OS X
- applications
- about / Applications
- ping pong / Ping pong
- work pools / Work pool
- defining / Applications
- atoms
- about / Atoms
- memory usage / Atom memory usage
B
- behaviors
- about / Behaviours and protocols, Behaviours, Defining behaviours
- typespecs / A short introduction to typespecs
- implementing / Using – implementing – behaviours
- binaries
- about / Binaries
- strings / Even more about Strings
- binary number
- Booleans
- about / Booleans
- branch miss
- about / Determinism
- build source of Erlang, GitHub page
- download link / Manual installation – source
- built-in types
- about / Some more built-in types
- functions / Functions
- process IDs (PIDs) / Process IDs
C
- calling functions
- about / Calling functions
- when to / When to use .
- CAP, distributed computing
- about / CAP – choose two, and one will be partition tolerance
- consistency / CAP – choose two, and one will be partition tolerance
- availability / CAP – choose two, and one will be partition tolerance
- partition tolerance / CAP – choose two, and one will be partition tolerance
- partition tolerance, selecting / Why you must choose partition tolerance
- definitions, relaxing / Relaxing definitions
- comments
- testing with / Testing with comments
- complex datatypes / Built-in protocols
- concurrent computation / Parallel computation and concurrent computation
D
- determinism
- about / Determinism
- Dialyzer
- reference / A short introduction to typespecs
- about / A short introduction to typespecs
- dictionaries
- about / Keywords, maps, and dictionaries, Dictionaries
- modifying / Modifying dictionaries
- directed acyclic graph (DAG)
- about / A small introduction to graphs
- distributed computing
- obligatory discussion / Obligatory discussion about distributed computing
- fallacies / Fallacies of distributed computing
- CAP / CAP – choose two, and one will be partition tolerance
- distributed computing, with Elixir
- about / Distributed computing with Elixir
- OTP nodes / OTP nodes
- doctesting
- about / Testing with comments
- domain-specific languages
- about / Domain-specific languages
- creating / Creating a DSL
- state of macro / State of the macro
E
- Ecto project
- about / Domain-specific languages
- Elixir
- stream processing / Stream processing and Elixir
- branching with / Branching with Elixir
- if statement / if and unless
- unless statement / if and unless
- new else if statement / The new else if
- case expression / Elixir case expressions
- Elixir, installing
- about / Installing Elixir
- on GNU/Linux / GNU/Linux
- on Apple Mac OS X / Apple Mac OS X
- on Windows / Windows
- Elixir files
- about / Elixir files
- Elixir functions
- about / Grabbing functions
- Elixir INSTALL
- reference / Windows
- Elixir process
- basics / Basics of Elixir process
- self type / Self
- messages, sending / Sending messages
- messages, receiving / Receiving messages
- Kernel module / Spawn
- spawn / Spawn
- process links / Process links
- monitoring / Process monitor
- state, storing / Storing state inside processes
- naming / Naming processes
- Process module / Process module
- Elixir projects
- structure / Structure of Elixir projects
- Elixir structure
- about / Elixir structure
- Enum module
- stream processing / Processing with the Enum module
- Erlang beam emulator source
- reference / Hello, World!
- Erlang binary
- download link / Manual installation – binary
- Erlang processes
- about / Erlang processes and OS processes
- parallel map / Parallel map
- Erlang Runtime System (ERTS)
- about / Determinism
- examples, branching
- about / Examples using branching
- FizzBuzz / FizzBuzz
- Mergesort / Mergesort
- examples, macros
- debugging / Debugging and tracing
- tracing / Debugging and tracing
- static data, to functions / Static data to functions
- exception handling
- about / Exception handling
- exceptions, raising / Raising exceptions
- throw command / Error, exit, and throw
- error command / Error, exit, and throw
- exit command / Error, exit, and throw
- exceptions
- handling / Handling exceptions
- try-rescue blocks / The try-rescue blocks
- try-catch blocks / The try-catch blocks
- using / Using exceptions
- files, opening / Opening files
- recap / Exceptions recap
- exponent floats
- expression
- about / Everything is an expression
F
- fallacies, distributed computing
- about / Fallacies of distributed computing
- reliable network / The network is reliable
- no latency / There is no latency
- infinite bandwidth / Bandwidth is infinite
- secure network / The network is secure
- topology doesn't change / Topology doesn't change
- only one administrator / There is only one administrator
- transport cost zero / Transport cost is zero
- homogeneousnetwork / The network is homogeneous
- blindfolded dragons, with butter knife / Fighting dragons blindfolded, equipped with a butter knife
- FizzBuzz
- about / FizzBuzz
- flow-based programming
- about / Flow-based programming
- fully qualified domain name (FQDN) / Node names
- functional algorithms
- about / Functional algorithms for everyday problems
- iteration, versus recursion / Iteration versus recursion
- performance considerations / Performance considerations
- reverse / Reverse
- sorting / Sorting
- functional programming
- need for / Why functional?
- functional projects
- building / Building functional projects
- flatten / Flatten
- testing / A small introduction to testing
- functions
- about / Functions
G
- Gen(eric) behaviors
- about / Gen(eric) behaviours
- Gen(eric) servers / Gen(eric) servers
- Gen(eric) events / Gen(eric) events
- OTP processes, defining / Special OTP processes
- variable scope, in Gen* processes / Variable scope in the Gen* processes
- back-pressure / Back-pressure and load shedding
- load shedding / Back-pressure and load shedding
- Gen(eric) events
- about / Gen(eric) events
- Gen(eric) servers
- about / Gen(eric) servers
- asynchronous messaging / Asynchronous messaging
- GNU/Linux
- Elixir, installing on / GNU/Linux
- graphs
- about / A small introduction to graphs
- node ancestors / Node ancestors
- group leaders / Group leader
- guards
- adding, to functions / When patterns aren't enough for matching
H
- handle_pong/2 function / Ping pong
- Hash Dicts
- about / Yet another dictionary type
- Hello, World!
- about / Hello, World!
- IO.puts/2 function, using / Using the IO.puts/2 function
- inspect/2 function, using / Using the inspect/2 function
- hexadecimal
- High Performance Erlang (HiPE) extension
- about / Determinism
I
- IEEE-754 standard
- about / IEEE-754
- inspect/2 function
- using / Using the inspect/2 function
- Inspect protocol
- reference / Using the inspect/2 function
- about / Using the inspect/2 function
- installation, Elixir
- about / Installing Elixir
- on GNU/Linux / GNU/Linux
- on Apple Mac OS X / Apple Mac OS X
- on Windows / Windows
- invariable variables
- IO.puts/2 function
- using / Using the IO.puts/2 function
J
- Java Virtual Machine (JVM)
- about / Determinism
K
- keywords
- about / Keywords
- properties / Keywords
- using, performance considerations / Performance considerations
- Koolaid
- about / Koolaid
L
- lists
- about / (Linked) Lists
- strings / A little more about strings
- number ranges, creating / Ranges
- versus tuples / Tuples or lists
M
- macros
- about / Our first macros, Context and macro hygiene
- context / Context and macro hygiene
- definition / Context and macro hygiene
- unhygienic macros / Unhygienic macros – overriding context
- examples / Macro examples
- testing / Testing macros
- manual installation, Elixir
- binary / Manual installation – binary
- source / Manual installation – source
- maps
- about / Keywords, maps, and dictionaries, Maps
- examples / Maps
- Mergesort
- about / Mergesort
- tests, writing / Writing tests
- sort, implementing / Implementing the sort
- messages
- sending / Sending messages
- receiving / Receiving messages
- metaprogramming
- macros / Our first macros
- mix tool
- about / Mix – the ladle of Elixir
- modules
- about / Modules, More to do about modules
N
- named functions
- about / Named functions
- networks
- about / Another short discussion about networks
- topologies / Topologies
- node ancestors
- about / Node ancestors
- numerical types
- about / Numerical types
- memory usage / Memory usage
O
- object-oriented (OO)
- about / Flow-based programming
- object-oriented (OO) languages / Behaviours
- octal number
- OS processes
- OTP design principles
- URL / Exercises
- OTP nodes, distributed computing with Elixir
- about / OTP nodes
- node names / Node names
- connecting / Connecting nodes
- cookies / Cookies and node security
- node security / Cookies and node security
- node ping pong / Node ping pong
- group leaders / Group leader
- globally registered names / Globally registered names
P
- parallel computation / Parallel computation and concurrent computation
- parallel map / Parallel map
- pattern matching
- about / Invariable variables and pattern matching, More pattern matching, More pattern matching
- IEEE-754 standard / IEEE-754
- ping pong / Ping pong
- priori
- private functions
- about / Private functions
- process IDs (PIDs)
- about / Process IDs
- process links
- about / Process links
- used, for spawning / Spawning with links
- Process module / Process module
- process monitoring / Process monitor
- protocols
- about / Dictionaries, Behaviours and protocols, Protocols
- built-in protocols / Built-in protocols
S
- self/0 function / Self
- self type / Self
- source of Erlang, GitHub page
- reference / Manual installation – source
- spawn/1 function / Spawn
- spawn/3 function / Spawn
- Stack Overflow question
- reference / Hello, World!
- Stream module
- stream processing / Processing with the Stream module
- examples / Stream examples
- stream processing
- about / Flow-based programming
- stream processing, in Elixir
- about / Stream processing and Elixir
- stream processing, with Enum module
- about / Processing with the Enum module
- stream processing, with Stream module
- about / Processing with the Stream module
- greedy, versus lazy / Greedy versus lazy
- strings
- about / Strings
- structure, Elixir projects
- about / Structure of Elixir projects
- mix.exs / mix.exs
- .gitignore / .gitignore
- config / config
- README.md / README.md
- lib / lib
- test / test
- project, compiling / Compiling a project
- project, testing / Testing a project
- code, running interactively / Running interactively
- files / Files
- mix and beyond / Mix and beyond
- structures
- about / Structures and Hash dicts
- supervisors
- about / Supervisors
- fail fast(er) / Fail fast(er)
- designing with / Designing with supervisors
- assumptions, of OTP process initialization / Assumptions of the OTP process initialization
T
- tail recursion / Iteration versus recursion
- topologies
- line topology / Topologies
- bus topology / Topologies
- star topology / Topologies
- tuples
- about / Tuples
- versus lists / Tuples or lists
- types
- about / A short introduction to types
- numerical types / Numerical types
- hexadecimal / Binary, hexadecimal, and octal numbers
- binary / Binary, hexadecimal, and octal numbers
- octal / Binary, hexadecimal, and octal numbers
- exponent floats / Binary, hexadecimal, and octal numbers
- atoms / Atoms
- Booleans / Booleans
- strings / Strings
- (linked) lists / (Linked) Lists
- tuples / Tuples
- binaries / Binaries
U
- underscore
- using / Using the underscore
W
Y
- yum package manager tool
- about / GNU/Linux