Journal Articles
Browse in : |
All
> Journals
> CVu
> 314
(8)
|
Note: when you create a new publication type, the articles module will automatically use the templates user-display-[publicationtype].xt and user-summary-[publicationtype].xt. If those templates do not exist when you try to preview or display a new article, you'll get this warning :-) Please place your own templates in themes/yourtheme/modules/articles . The templates will get the extension .xt there.
Title: Reviews
Author: Bob Schmidt
Date: 02 September 2019 17:07:30 +01:00 or Mon, 02 September 2019 17:07:30 +01:00
Summary: The latest roundup of reviews.
Body:
We are always happy to receive reviews of anything that may be of use, or of interest, to software developers. The emphasis will tend to be on technical books, but we are also interested in less-technical works – for example, the humanities or fiction – and in media other than traditional print books.
Do you know of something you think deserves – or does not deserve – a wider audience? Share it here. We're keen to highlight differing opinions on the same work, so if you disagree with a review here do send in your own! Contact Ian Bruntlett at reviews@accu.org.
Effective Python
By Brett Slatkin, published by Addison-Wesley, 2015, 216 pages, ISBN: 0-13-403428-7
Reviewed by Paul Floyd
There is some sample content at: http://ptgmedia.pearsoncmg.com/images/9780134034287/samplepages/9780134034287.pdf
I’m only just starting with Python, so my rating (3/5) is perhaps a bit harsh as I don’t think that this book is really intended for beginners. I’ve read a few other titles in the Addison-Wesley Effective series (Code Quality, Code Reading
and Effective XML). Generally, I found them to be fairly easy reads with low barriers to entry. As with many books in this style, the book is organized into 59 ‘items’ split over 8 chapters.
Effective Python jumps very quickly from a couple of introductory items (checking which Python version you are using, read the Python style guide) to some definitely not beginner items like array slicing. This meant that I found it easy to follow some of the easier items like docstrings but for items like decorators and metaclasses, it was all over my head and I could only imagine the kind of introspection that they provide.
I may revisit this review after going though the online python.org ‘getting started’ guide and perhaps reading a proper beginner’s book.
Effective Modern C++
By Scott Meyers, published by O’Reilly, 2014, 301 pages, ISBN: 978-1-491-90399-5
Reviewed by Paul Floyd
Web page: http://shop.oreilly.com/product/0636920033707.do
Highly recommended (5/5).
Effective Modern C++ follows on in the tradition of the various other Effective C++ volumes by the same author. The style is much the same, down to the use of colour in the code samples. This volume is also arranged into items, 42 of them in this case. Probably the biggest stylistic change is the switch from Addison-Wesley to O’Reilly, which means white-on-pink text and an animal (a rose-crowned fruit dove).
The book covers all of the major changes and additions that came with C++11 and C++14: auto
/decltype
type deduction, brace initialisation, nullptr
, constexpr
, class enums, default
/override
/delete
for class methods, smart pointers, rvalue references, lambdas and concurrency. That’s a lot of ground to cover and Meyers does a very good job of explaining it all in just over 300 pages. Not only did I find the explanations clear and easy to follow, but I also enjoyed the explanations of the benefits of using the new features. Meyers also makes it clear that the changes aren’t always that much of a revolution; for instance, in the case of rvalue references he points out that the benefits are likely to limited due to the conservative choices that were made by the C++ committee on specifying when the compiler can automatically generate move constructors and move assignment operators.
I definitely felt upon finishing this book that I understood C+11/14 better.
The Design and Implementation of the FreeBSD Operating System, Second Edition
By Marshall McKusick, George Neville-Neil and Robert Watson, published by Addison-Wesley, 2015, 846 pages, ISBN: 978-0-321-96897-5
Reviewed by Paul Floyd
About 10 years ago, I read the first edition of this book, and I quite enjoyed it. I’ve read a few books on OSes (Solaris, Windows, Mac OS X and Linux) and they tend to dwell on the details, either in the case of the open-source OSes describing the fields of kernel data structures or in the case of the closed source ones, trying to find ways to tell you as much about the data structures as possible with kernel debug tools. My main recollection from the first edition was that there was little in the way of data structures, it was mainly English prose. And that I quite enjoyed.
Fast forward to the second edition. Firstly we jump from FreeBSD 5.2 to FreeBSD 11 (which is not yet a production release). A lot of changes have happened in those 10 years. Virtualization, Security, ZFS and DTrace have all been added, which probably explains why the page count has gone up by about 200 pages (though the paper is thinner so the second edition is actually slightly thinner).
Unfortunately for me, much of this new material was either fairly familiar to me (e.g. the stuff that came from OpenSolaris like ZFS and DTrace) or isn’t really my cup of tea (like the security). That said, I quite enjoyed the book and if I do get the time to dabble a bit with FreeBSD then I expect that I’ll revisit the book.
Boost C++ Application Development Cookbook
By Anthony Polukhin, published by Packt Publishing, 2013, 327 pages, ISBN: 978-1-84951-488-0
Reviewed by Paul Floyd
Covers Boost 1.53 (Note: 2nd edition published 2017.)
I’ve read a few books in the same mould as this, ‘Boost recipe books’. They all share the same fundamental problem – why would someone buy the book when there is a similar amount of information available in the online Boost documentation. Boost includes well over 100 libraries, so consequently either thousands of pages are required, or else the coverage is either scant or incomplete.
Having said that, I quite liked the layout and the problem-oriented approach. In 327 pages, there just isn’t enough information. Say I want to use Boost to generate some random numbers, there’s a recipe for using Boost.Random
. If I wanted to use a system generated uniformly distributed integer, then my luck is in. Otherwise I have to follow the link to the online Boost documentation.
In summary, it doesn’t add much value compared to the online docs.
Notes:
More fields may be available via dynamicdata ..