The Author Online Book Forums are Moving

The Author Online Book Forums will soon redirect to Manning's liveBook and liveVideo. All book forum content will migrate to liveBook's discussion forum and all video forum content will migrate to liveVideo. Log in to liveBook or liveVideo with your Manning credentials to join the discussion!

Thank you for your engagement in the AoF over the years! We look forward to offering you a more enhanced forum experience.

cjfowler (1) [Avatar] Offline
#1
I realize that proofreaders and copy editors will be working over the text, but I wanted to pass along to them some minor problems I found in the first chapter. I know how easy it is to miss some of these, and I wanted to make some contribution to the process, no matter how minor.

I am enjoying working through the book,

Charles Fowler

Errata:

Chapter 1 introductory section (p. 2 of my MEAP pdf)
the processor in your laptop or desktop machine probably has four or so CPU cores within it. But the vast majority of Java programs use only one of these cores and leave the other seven idle

Granted, four cores might allow for eight threads, but that's not mentioned. Why not just say most programs leave the other three idle?

Section 1.1.1, p. 4 in my MEAP
programmers are increasingly dealing with large volume of data
This seems awkward. Can an editor decide whether a large volume or large volumes of data or even large-volume data might be better?

Section 1.1.5, p. 12 in my MEAP,
On top of that, we have a felling you will love
should be “feeling”

Section 1.3, p. 14
This model is harder to think about5 than
Extraneous character

Section 1.3, p. 14 footnote
4 Traditionally via the keyword synchronized, but many subtle bugs arise from its misplacement. Java 8’s Stream-based parallelism encourages a functional programming style where synchronized is rarely used it focuses on partitioning the data rather than coordinating access to it.

I can't find a footnote number in the text of the page for either footnote. The second sentence is a run-on sentence. Needs at least a semi-colon.

Section 1.3 Figure 1.7, p. 18
4 is not prime but 5 is.

Section 1.6, p. 22
Chapter 13 follows by discussing how Java 8 features compare to features in the language
Scala—a language that, like Java, are implemented on top of the JVM

Should be is implemented
p_jakwert (2) [Avatar] Offline
#2
Re: Chapter 1 suggestions
1.1 Why is Java still changing?
Paragraph 2: "For example, C and C++ remain popular for building operating systems, in spite of their lack of programming safety, leading to programs crashing unpredictably and opening security holes for viruses and the like."


That is not exactly a correct assumption.

Crashes are usually result of software bugs. Since C/C++ programmers have additional duty of memory management, the potential number of bugs is higher.
Java applications crash as well, just with the stack trace.

Security holes and viruses, in general: security vulnerabilities, are not connected to programming language. They are rather result of poor architecture.
For example MS Windows and Unix/linux/MacOS systems were all written in C/C++, but 99% of viruses attack just the former.

C and C++ languages are used when:
- program execution time is critical,
- CPU and RAM resources are limited (low),
- no virtual machine, or no OS is available in the device (embedded),
- low-level access to CPU,RAM,IO is needed.

Br.
Przemek
p_jakwert (2) [Avatar] Offline
#3
Re: Chapter 1 suggestions
Just a small note: please keep in mind that JVM is written in C/C++ as well smilie
mpenagar (1) [Avatar] Offline
#4
Re: Chapter 1 suggestions
No idea about Java 8 (yet), but I suppose that the example in Sec 1.3 (page 16, version 10) should be:

import static java.util.stream.Collectors.groupingBy;

instead of

import static java.util.stream.Collectors.toList;
raoul-gabriel.urma (37) [Avatar] Offline
#5
Re: Chapter 1 suggestions
Thanks this will be fixed. Tomorrow (Sunday) is the last day to send fixes before the book goes to printers. Thanks, R