Errata

Designing for Scalability with Erlang/OTP

Errata for Designing for Scalability with Erlang/OTP

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
Printed Page 28
erlang shell: 8>

The first generator arrow needs a space deleted prior to it, and a space added after it. The arrow should line up with the arrow on line 7.

7stud  May 19, 2017 
PDF Page 145
Test run with three phones

phone:start_link/1 Is not defined in phone.erl at github code exercise example.

GuidoRumi  Nov 03, 2016 
Printed Page 145
command 5,6,7

The code make a call to function phone:start_link() but the code in github repo does not have this.

https://github.com/francescoc/scalabilitywitherlangotp/blob/master/ch6/exercise/phone.erl

adarshkkumar  Nov 20, 2018 
Printed Page 290, 291
5th paragraph 290, 1st paragraph 291

The Text on page 290:

..., so when you press the sequence Ctrl-c a, instead of terminating the virtual machine you terminate just the shell process and restart it.

should be replaced by:

..., so when you press the sequence Ctrl-c, interrupt the current shell instead of invoking the emulator break handler and terminates the shell and restart it.

A similar correction should be done on page 291 in the description for "+Bc".

Example:

>>> erl +Bc
Erlang/OTP 20 [erts-9.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [kernel-poll:false]

Eshell V9.2 (abort with ^G)
1> ** exception exit: killed
1>

Wolfgang Nádasi-Donner  Jan 08, 2018 
Printed, PDF Page 321
Throughout the text and code listing on that page, and on the following one

While explaining the second code_change/2 argument, both the text and the code listing alternate between naming it "Data" and "Extra". I guess this wasn't done on purpose and might confuse the reader.

Holger Weiß  Sep 07, 2016 
Printed Page 324
Code in function "service()"

By reading the code I recognized that there is no way to leave the state "service".

I think that after receiving the message "close" the call to "service()" should be changed to "selection()", e.g.

service() ->
receive
close ->
hw:reboot(),
hw:display("Make Your Selection", []),
selection(); % changed from "service()
...

The same is true for the file "coffee.erl" in the "patches" subdirectory of the code for chapter 12.

I hope I interpreted the code in a correct way.

Wolfgang Nádasi-Donner  May 28, 2017 
Printed Page 406
Box "Amdahl's Law"

Parenthesis missing In sentence: "As N approaches infinity, the maximum speedup becomes S(N) = 1/1-P.".

The Formula should be: 1 / (1-P).

Wolfgang Nádasi-Donner  Jun 03, 2017