Books & Videos

Table of Contents

  1. Chapter 1 Starting Out

    1. Using the Erlang Shell

    2. Some Erlang Basics

    3. Working with Binary Data

  2. Chapter 2 Modules

    1. What Are Modules?

    2. Creating Modules

    3. Compiling Code

    4. Defining Macros

    5. More About Modules

  3. Chapter 3 Syntax in Functions

    1. Pattern Matching

    2. Guards, Guards!

    3. What the If ?!

    4. In case ... of

    5. Which Should We Use?

  4. Chapter 4 Types (or Lack Thereof)

    1. Dynamite-Strong Typing

    2. Type Conversions

    3. To Guard a Data Type

    4. For Type Junkies

  5. Chapter 5 Hello Recursion!

    1. How Recursion Works

    2. More Recursive Functions

    3. More Than Lists

    4. Thinking Recursively

  6. Chapter 6 Higher-Order Functions

    1. Let’s Get Functional

    2. Anonymous Functions

    3. Maps, Filters, Folds, and More

  7. Chapter 7 Errors and Exceptions

    1. A Compilation of Errors

    2. Raising Exceptions

    3. Dealing with Exceptions

    4. Try a try in a Tree

  8. Chapter 8 Functionally Solving Problems

    1. Reverse Polish Notation Calculator

    2. Heathrow to London

  9. Chapter 9 A Short Visit to Common Data Structures

    1. Records

    2. Key/Value Stores

    3. A Set of Sets

    4. Directed Graphs

    5. Queues

    6. End of the Short Visit

  10. Chapter 10 The Hitchhiker’s Guide to Concurrency

    1. Don’t Panic

    2. Concurrency Concepts

    3. Not Entirely Unlike Linear Scaling

    4. So Long and Thanks for All the Fish!

  11. Chapter 11 More on Multiprocessing

    1. State Your State

    2. We Love Messages, But We Keep Them Secret

    3. Time Out

    4. Selective Receives

  12. Chapter 12 Errors and Processes

    1. Links

    2. Monitors

    3. Naming Processes

  13. Chapter 13 Designing a Concurrent Application

    1. Understanding the Problem

    2. Defining the Protocol

    3. Lay Them Foundations

    4. An Event Module

    5. The Event Server

    6. A Test Drive

    7. Adding Supervision

    8. Namespaces (or Lack Thereof)

  14. Chapter 14 An Introduction to OTP

    1. The Common Process, Abstracted

    2. The Basic Server

    3. Specific vs. Generic

    4. Callback to the Future

    5. .BEAM Me Up, Scotty!

  15. Chapter 15 Rage Against the Finite-State Machines

    1. What Is a Finite-State Machine?

    2. Generic Finite-State Machines

    3. A Trading System Specification

    4. Game Trading Between Two Players

    5. That Was Really Something

    6. Fit for the Real World?

  16. Chapter 16 Event Handlers

    1. Handle This! *pumps shotgun*

    2. Generic Event Handlers

    3. It’s Curling Time!

  17. Chapter 17 Who Supervises the Supervisors?

    1. Supervisor Concepts

    2. Using Supervisors

    3. Band Practice

    4. Dynamic Supervision

  18. Chapter 18 Building an Application

    1. A Pool of Processes

    2. Implementing the Supervisors

    3. Working on the Workers

    4. Writing a Worker

    5. Run Pool Run

    6. Cleaning the Pool

  19. Chapter 19 Building Applications the OTP Way

    1. My Other Car Is a Pool

    2. The Application Resource File

    3. Converting the Pool

    4. The Application Behavior

    5. From Chaos to Application

    6. Library Applications

  20. Chapter 20 The Count of Applications

    1. From OTP Application to Real Application

    2. Run App Run

    3. Included Applications

    4. Complex Terminations

  21. Chapter 21 Release Is the Word

    1. Fixing the Leaky Pipes

    2. Releases with systools

    3. Releases with Reltool

    4. Reltool Recipes

    5. Released from Releases

  22. Chapter 22 Leveling Up in the Process Quest

    1. The Hiccups of Appups and Relups

    2. The Ninth Circle of Erl

    3. Process Quest

    4. Making Process Quest Better

    5. Relup Review

  23. Chapter 23 Buckets of Sockets

    1. IO Lists

    2. UDP and TCP: Bro-tocols

    3. More Control with Inet

    4. Sockserv, Revisited

    5. Where to Go from Here?

  24. Chapter 24 EUnited Nations Council

    1. EUnit—What’s an EUnit?

    2. Test Generators

    3. Fixtures

    4. Testing Regis

    5. He Who Knits EUnits

  25. Chapter 25 Bears, ETS, Beets: In-Memory NoSQL for Free!

    1. Why ETS

    2. The Concepts of ETS

    3. ETS Phone Home

    4. Meeting Your Match

    5. You Have Been Selected

    6. DETS

    7. A Little Less Conversation, a Little More Action, Please

  26. Chapter 26 Distribunomicon

    1. This Is My Boomstick

    2. Fallacies of Distributed Computing

    3. Dead or Dead-Alive

    4. My Other Cap Is a Theorem

    5. Setting Up an Erlang Cluster

    6. Cookies

    7. Remote Shells

    8. Hidden Nodes

    9. The Walls Are Made of Fire, and the Goggles Do Nothing

    10. The Calls from Beyond

    11. Burying the Distribunomicon

  27. Chapter 27 Distributed OTP Applications

    1. Adding More to OTP

    2. Taking and Failing Over

    3. The Magic 8 Ball

  28. Chapter 28 Common Test for Uncommon Tests

    1. What Is Common Test?

    2. Common Test Structure

    3. Creating a Simple Test Suite

    4. Testing with State

    5. Test Groups

    6. Test Suites Redux

    7. Test Specifications

    8. Large-Scale Testing

    9. Integrating EUnit Within Common Test

    10. Is There More?

  29. Chapter 29 Mnesia and the Art of Remembering

    1. What’s Mnesia?

    2. What Should the Store Store?

    3. From Record to Table

    4. Of Mnesia Schemas and Tables

    5. Creating Tables

    6. Access and Context

    7. Reads, Writes, and More

    8. Implementing the First Requests

    9. Meet the Boss

    10. Deleting Stuff, Demonstrated

    11. Query List Comprehensions

    12. Remember Mnesia

  30. Chapter 30 Type Specifications and Dialyzer

    1. PLTs Are the Best Sandwiches

    2. Success Typing

    3. Type Inference and Discrepancies

    4. Typing About Types of Types

    5. Typing Functions

    6. Typing Practice

    7. Exporting Types

    8. Typed Behaviors

    9. Polymorphic Types

    10. You’re My Type

    11. That’s All, Folks

  1. Appendix Afterword

    1. Other Erlang Applications

    2. Community Libraries

    3. Your Ideas Are Intriguing to Me and I Wish to Subscribe to Your Newsletter

    4. Is That It?

  2. Appendix On Erlang’s Syntax

    1. The Template

    2. The English Sentence

    3. And, Or, Done.

    4. In Conclusion

  3. Colophon

  4. Appendix Updates