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. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

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

Version Location Description Submitted By Date submitted Date corrected
ePub
Page 4
Just before "Defining the Problem"

Needless space before apostrophe

It 's a great
=>
It's a great

Note from the Author or Editor:
Fixed by removing needless whitespace.

Eric Willigers  Sep 13, 2014 
PDF
Page 16
2nd paragraph

Examples include the amount of memory is your node using
should be
Examples include the amount of memory your node is using

Note from the Author or Editor:
Fixed.

Eric Willigers  Sep 16, 2014 
PDF
Page 19
last paragraph

the call fails as none of the clauses matches.
should be
the call fails as none of the clauses match.

Note from the Author or Editor:
The current text isn't incorrect, as "matches" corresponds to "none", i.e., "none matches", and "none" isn't necessarily plural. However, many readers are more comfortable considering "none" as plural, so we will change this text to be clearer.

Eric Willigers  Sep 16, 2014 
Printed, PDF, ePub, Mobi, , Other Digital Version
Page 39
2nd paragraph

the record definition 'hostent' is missing commas between the fields

Note from the Author or Editor:
Should be

-record(hostent,
{
h_name, % offical name of host
h_aliases = [], % alias list
h_addrtype, % host address type
h_length, % length of address
h_addr_list = [] % list of addresses from name server
}).

the rac  Jun 21, 2016 
PDF
Page 105
Full sweep of the heap

but x you should pick your own
should be
but you should pick your own

Note from the Author or Editor:
Fixed.

Eric Willigers  Sep 17, 2014 
ePub
Page 113
First sentence

"If want to let the supervisor continue to start workers�

Missing "you" after "If"?

Note from the Author or Editor:
fixed

Derek Brown  Jun 24, 2014 
PDF
Page 116
Second Paragraph

In the sentence

Any other events coming out of sequence (such as Sunset when in state Day) are handled only after a transition to a state where they can be dealt with.

the phrase in parentheses should be either "(such as Sunrise when in state Day)" OR "such as Sunset when in state Night)"

Note from the Author or Editor:
Already fixed in copyedit. Changed "In state Night, event Sunset causes" to "In state Night, event Sunrise causes" and also changed "(such as Sunset when in state Day)" to "(such as Sunrise when in state Day)".

mjtlx  Mar 15, 2016 
PDF
Page 124
last paragraph

a asynchronous --> an asynchronous

Note from the Author or Editor:
fixed

Shayan Pooya  Jun 09, 2014 
PDF
Page 137
Bottom code listing

stop() calls gen_fsm:sync_send_all_state_event, but we implement handle_event (not handle_sync_event). Maybe stop() should call gen_fsm:send_all_state_event instead?

Note from the Author or Editor:
This is already fixed in copyedit. The fix is, near the bottom of page 137, to change "the event is handled in handle_event/3" to "the event is handled in
handle_sync_event/4" and change "handle_event(stop, _State, LoopData)" to "handle_sync_event(stop, _From, _State, LoopData)".

John Gallagher  Mar 17, 2016 
PDF
Page 154
Sample run in the middle

`terminate/3` function at the top of page 154 doesn't contain any code to display:
Display:Shutting Down
which is in the sample run.

Note from the Author or Editor:
Fixed, there was a discrepancy with the code.

Yuce Tekol  Dec 25, 2015 
ePub
Page 161
First sentence of first paragraph

"So, what's is happening?"

Redundant apostrophe s and "is".

Note from the Author or Editor:
Fixed.

Derek Brown  Dec 18, 2014 
Printed, PDF, ePub
Page 191
last paragraph

The text says "Keep in mind that terminate_child/2, restart_child/2, and delete_child/2 cannot be used with simple_one_for_one strategies:" but this is not completely correct. The terminate_child/2 function can be used with simple_one_for_one as long as the child process pid, not the child specification identifier, is passed for the second argument. This is clearly documented under http://erlang.org/doc/man/supervisor.html#terminate_child-2 : "If the supervisor is simple_one_for_one, Id must be the pid() of the child process."

Steve Vinoski
Steve Vinoski
 
Jul 19, 2016 
Printed, PDF, ePub
Page 199
Before "Abnormal or Normal Termination?" section

In the last sentence above the mentioned section is written: "How to you test these scenarios and detect these design anomalies?"

Shouldn't it be "How to test..." or "How do you test..."?

Note from the Author or Editor:
On page 199 in the sentence just before the sidebar titled "Abnormal or Normal Termination?", change "How to you test" to "How do you test".

Carlos Galdino  Jul 03, 2016 
PDF
Page 239
Last paragraph

Typo: "netspilt"

Note from the Author or Editor:
Fixed, thanks.

Yuce Tekol  Dec 26, 2015 
PDF
Page 372
2nd paragraph

Duplicated sentence:

"We cover other networking approaches you might need when connecting
your Erlang and non-Erlang nodes to each other. We cover other networking
approaches you might need when connecting your Erlang and non Erlang nodes to
each other."

Johan Wärlander  Nov 03, 2015