CSS: The Definitive Guide — Eric A. Meyer & Estelle Weyl, O’Reilly 2017 (4th ed.), ISBN 978-1-449-39319-9
The long expected update to a classic last revised in 2006, this massive tome is certainly definitive in size and detail. More than a thousand pages cover every esoteric wrinkle of CSS anyone might possibly want to know about, including latest additions to the standard that are not yet widely supported.
Unlike McFarland’s CSS: The Missing Manual with its tutorial-oriented approach, CSS: The Definitive Guide acts more as an encyclopedia. Reading it from start to finish would be tedious and pointless; it’s the book to have around when you need to look up some specific CSS behavior. For that purpose it is excellent, thanks to good writing, many examples in both code and output, and of course extremely thorough coverage.
The one substantial downside is pervasive poor editing. Some amusing sections copied from older editions still refer to Windows XP as a “modern” OS, and one section advises against specifying sizes in px because they might map to single screen pixels on high-density screens. That hasn’t been true for a long time, and most of the book correctly uses px for sizing. A confusing habit is stating “this text does not cover X” when X is in fact covered somewhere else in the book, just not in the current chapter. Proper cross-references rarely exist.
There are also a number of erroneous numbers and phrases that are obviously typos but can be quite confusing at first glance. If something doesn’t seem to make sense, check the errata and especially the unconfirmed ones, as the authors rarely bother to confirm reported errors. Still, there is no equivalent book with better editing so it gets my recommendation.
JavaFX 9 by Example — Carl Dea, Gerrit Grunwald, José Pereda, Sean Philips & Mark Heckler, Apress 2017 (3rd ed.), ISBN 978-1-4842-1960-7
For the most part this book does exactly what its title says. Dea et al. walk the reader through all the major features of JavaFX, from simple graphics and property binding to scene layout (including a short Scene Builder demo), standard controls, imaging and printing, audio and video, plus dedicated chapters on interfacing HTML and HTTP, custom UI themes, and the recently added 3D subsystem.
Several chapters you probably wouldn’t expect cover the use of JavaFX with unusual hardware: running JavaFX on mobile phones and embedded devices using JavaFXPorts, gesture input using the Leap Motion 3D controller, and even connecting to the Arduino microcontroller board from a JavaFX application! The latter isn’t entirely frivolous either, as it serves to demonstrate drawing line charts in response to real-time inputs.
Another unexpected but helpful chapter discusses the Java 9 module system, including the new modular structure of JavaFX and building modular applications. The only sections that don’t really have a place in an “intermediate to advanced” book (as per the back cover) are those on installing the JDK and NetBeans, especially as NetBeans is unfortunately the one IDE that still doesn’t have an official release for Java 9. That aside, I recommend this highly readable book to anyone learning about JavaFX in general or one of the covered topics in particular.
(See Developer Books for my complete review archive.)