Errata

Reactive Programming with RxJava

Errata for Reactive Programming with RxJava

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
PDF
Page vii
TOC

Writing Customer Operators (Ch. 3)

I think it's "Custom", NOT "Customer".

Intae Kim  Oct 27, 2016 
PDF
Page viii
TOC

Scanning Through the Sequence with Scan and Reduce

I think:

Scan -> scan()
Reduce -> reduce()

Intae Kim  Oct 27, 2016 
PDF
Page TOC
viii

Lazy paging and concatenation

I have two suggestion with this:

1. capitalize: it's 2nd-level title, so
Lazy paging and concatenation -> Lazy Pagination and Concatenation

2. 'pagination', rather than 'paging'
In my opinion, 'pagination' is more suitable word in this case.
'paging' typically related to "memory management".

Intae Kim  Oct 27, 2016 
PDF
Page 5
3rd code fragment

Original code:

interface Subscriber<T> implements Observer<T>, Subscription {
...
}

Subscriber is an abstract class, not an interface.

Jiaqi  Sep 30, 2017 
PDF
Page 10
3rd

IN: the mechanics of two asynchronous Observables...

plural 's' maybe not to be FIXED WIDTH FONT FORMAT

Intae Kim  Oct 27, 2016 
PDF
Page 12
2nd

IN: Lazyiness allows composing Observables together without data loss...

There are two:

1. in fixed width "Observables", plural 's' maybe not to be FIXED WIDTH FONT FORMAT

2. Lazyiness -> Laziness

Intae Kim  Oct 27, 2016 
PDF
Page 15
1st

In other words, the Rx Observable allows programming with async data via push just like Streams around Iterables and Lists using synchronous pull.

(fixed width) Iterables -> (fixed) Iterable (normal) s
(fixed width) Lists -> (fixed) List (normal) s

Intae Kim  Oct 27, 2016 
PDF
Page 28
4th

Design Patterns: Elements of Reusable Object-Oriented So ware by Erich Gamma and Richard Helm [Addison-Wesley])

"." is missing in the end of sentence.

Intae Kim  Oct 27, 2016 
Printed
Page 41
2nd paragraph

The sentence

"However, at this point subscriber.isUnsubscribed() returns false and no event is emitted"

should IMHO read

"However, at this point subscriber.isUnsubscribed() returns true and no event is emitted"

Andreas Spengler  Nov 18, 2016 
PDF
Page 66
2nd

For example, the first filter() does not remove 9 from Observable.just(8, 9, 10)

"." is missing in the end of the sentence.

Intae Kim  Oct 27, 2016 
PDF
Page 70
3rd

If getOrders() was not a simple getter but an expensive operation in terms of run time,


is it "running time"? or "runtime"?

Note from the Author or Editor:
running time

Intae Kim  Oct 27, 2016 
PDF
Page 74
3rd

ON THE BOOK:
In our case, this delay depends on the day of the week: 65 and 90 milliseconds for Saturday and Monday, respectively.

But, while I'm looking the code on the book,

CODE #1:

Observable
.just(DayOfWeek.SUNDAY, DayOfWeek.MONDAY)
.flatMap(this::loadRecordsFor);

CODE #2:

Observable<String> loadRecordsFor(DayOfWeek dow) {
switch(dow) {
case SUNDAY:
return Observable
.interval(90, MILLISECONDS)
.take(5)
.map(i -> "Sun-" + i);
case MONDAY:
.interval(65, MILLISECONDS)
.take(5)
.map(i -> "Mon-" + i);
return Observable
//... }

So, by code bases, it should be:

-> In our case, this delay depends on the day of the week: 90 and 65 milliseconds for Sunday and Monday, respectively.

- 65 and 90 -> 90 and 65
- Saturday -> Sunday

Intae Kim  Nov 01, 2016 
PDF
Page 94
4th

In: Yet operators such as take or last are too useful to be omitted.

I think:
- take -> take()
- last -> last()

Intae Kim  Oct 27, 2016 
PDF
Page 96
3rd

IN: You can implement`count()` easily by using reduce() ):

Is "):" is an emoticon? or, corresponding "(" is missing in front of sentence?

Note from the Author or Editor:
The closing paren is not needed. Also `count()` should be formatted as code, without single quotes.

Intae Kim  Oct 27, 2016 
Printed
Page 102
Last paragraph

"the ladder makes sense" should be "the latter makes sense"

Warwick Hunter  Feb 10, 2018 
Printed
Page 104
Line 2, 3rd paragraph

"(for more information about data-driven design ..." should be "(for more information about domain-driven design ...".

Sean Zhou  May 02, 2018 
PDF
Page 107
4th

Following the UNIX philosophy of "small, sharp tools,”

closing double quote and comma position:
"small, sharp tools,” -> "small, sharp tools”,

Intae Kim  Oct 27, 2016 
Printed
Page 109
Last code sample

alphabet
.compose(odd())
.forEach(System.out::println);

should be

alphabet
.compose(ClassName::odd)
.forEach(System.out::println);

where ClassName is the name of the class. Compose needs a method reference here.

Warwick Hunter  Feb 10, 2018 
PDF
Page 110
5th

(notice how reduce() is implemented using scan().take Last(1).single():

Maybe closing pharenthesis is missing:
...Last(1).single(): -> ...Last(1).single()):

Intae Kim  Oct 27, 2016 
PDF
Page 115
2nd

We build an infinite stream of numbers (1, 2, 3, 4, 1, 2, 3...), apply our operator ("1", "3", "1", "3"...)

missing commas:

-> (1, 2, 3, 4, 1, 2, 3,...), apply our operator ("1", "3", "1", "3",...)

Intae Kim  Oct 27, 2016 
PDF
Page 118
6th (last paragraph)

might need have to translate Observable to a plain collection.

Is it correct?: "might need have to"

Note from the Author or Editor:
Grammar?

Intae Kim  Oct 27, 2016 
PDF
Page 121
2nd

The simples technique is to wrap an eager Observable with defer():

In question: "The simples"?

Note from the Author or Editor:
The simplest

Intae Kim  Oct 27, 2016 
PDF
Page 125
6th (last paragraph)

For example in Tomcat there are 200 threads by default in the executors that are responsible for handling requests.

maybe missing comma:

For example in Tomcat -> For example, in Tomcat

Intae Kim  Oct 27, 2016 
PDF
Page 136
2nd

anarea -> an area

Intae Kim  Oct 27, 2016 
PDF
Page 143
5th

resulting in OutOfMemor yError for cases in which there are a of large number of outstanding tasks.

there are a of large number of -> there are a large number of

Intae Kim  Oct 27, 2016 
PDF
Page 150
3

as a matter of fac, -> as a matter of fact,

Intae Kim  Oct 27, 2016 
PDF
Page 153
4th

In Chapter 5, we write write truly asynchronous applications

->

In Chapter 5, we will write truly asynchronous applications

Intae Kim  Oct 27, 2016 
Printed
Page 249
3rd paragraph (the first bullet)

parenthesis does not match (missing close parenthesis)

Kang-Woo Lee  Feb 13, 2018 
PDF, ePub, Mobi
Page 12122
text

Typos:

Current
all events because they simply appear too often and there is never a moment of silence: Observable .interval(99, MILLISECONDS) .debounce(100, MILLISECONDS) Such a source will never emit any event because debounce() waits as much as 100 milliseconds to wnsure that there is no more recent event.

Suggested
"much as 100 milliseconds to wnsure that there is no more recent event." should be "much as 100 milliseconds to unsure that there is no more recent event."




Current
Neither memory nor your solid state drive are inifnite.

Suggested
"solid state drive are inifnite. Luckily there is an overloaded version" should be "solid state drive are infinite. Luckily there is an overloaded version"

Note from the Author or Editor:
Thank you very much!

Anonymous  Sep 17, 2019