Halley – This fine, intense #YA novel explores the harsh lives that women and children faced in 1930s rural Georgia – #bookreview

Halley

Faye Gibbons

(NewSouth Books - hardcover, Kindle)

 

Life was tough in the mountains of  northeast Georgia during the Great Depression. And it was particularly hard for women, who had virtually no rights and no say in important matters, especially if they were unmarried. The rural mountain life also was tough for children, who were expected to work hard, always obey, not be heard, and waste no time on enjoyment or fun.

In Faye Gibbons’ excellent new young-adult novel, a hard, unforgiving brand of backwoods religion also holds sway in young Halley’s life. Her father, Jim Owenby, recently has died, and Halley, her mother Kate, and her young brother Robbie have been forced to move in with Kate’s mother and father. Halley’s grandfather, Pa Franklin, is a backwoods fundamentalist preacher who cuts no one any slack. He is quick to judge, criticize, preach, punish and condemn. In his eyes, the road to hell is very short and most people already are on it.

Pa Franklin also takes, or tries to take, any money earned by his wife, his daughter and his granddaughter. And he even reads their mail and sometimes throws it away before they can see it. It is his way, he thinks, of protecting them from their own helplessness.

The author grew up in northern Georgia, in a large mountain family, and she has gotten to know many of the region’s people, mill towns, and other communities. Her central character, Halley Owenby, is fourteen and dreams mainly of getting an education and somehow gaining a level of control over her own life.

The actions and confrontations that unfold in this new book are gritty, intense and sometimes dark. Yet the combined powers of hope, love, honesty and stubborn effort finally shine through and light the way to brighter possibilities for Halley and those around her.

Faye Gibbons is a superb storyteller and writer, with a fine-tuned ear for regional speech, a sharp eye for detail, and an unhidden love for her characters–even the ones who make us shudder, cringe and tighten our fists in frustration at their repeated refusals to listen, think, and change.

Si Dunn

 

 

 

 

 

 

Halley

Blind Moon Alley – John Florio’s 2nd Jersey Leo novel is a noir knockout – #bookreview

 

 

Blind Moon Alley

A Jersey Leo Novel

John Florio

(Seventh Street Books - paperback, Kindle)

 

Jersey Leo absolutely is a misfit in Prohibition-era, Depression-ravaged Philadelphia. He is a mixed-race albino who works behind the bar at the Ink Well, a speakeasy where the customers include seedy criminals and tough cops looking both for booze and bribes.

Jersey Leo breaks the law every time he pours a drink. He also knows how to use a gun and brass knuckles. And he isn’t above hiding an escaped convict.

Yet he also has genuine notions of right and wrong within his dark world where bread lines and desperation are just around the corner. Mostly, he just wants to stay out of trouble, he claims. “No, I’m not out to rid our streets of crime and corruption. All I want to do is pour some moon, make a little dough, and if the stars align, spend a bit of time with a certain five-foot-two-inch coat checker whose eyes haven’t seen enough of the real world to stop sparkling.”

Of course, that’s not how life works out in Jersey Leo’s underworld, where his street name is “Snowball.” He makes a solemn promise to a cop-killer friend now facing execution in the electric chair, and soon that promise has him running from crooked cops and trying to flee Philadelphia with a speakeasy siren named Myra. She was his grammar-school crush, he’s reasonably sure he loves her again, and he wants to take her to the West Coast, far from the murdering crowd in Philly. Yet there suddenly are more forces and complications at work than Snowball can comprehend or handle once he tries to scrape up their escape money.

Blind Moon Alley, the second Jersey Leo novel, is a thriller rich with thrills–and chills. (The series’ debut novel is Sugar Pop Moon, published last year.) John Florio is a fine writer with a smooth, taut style and tone that quickly bring to mind Dashiell Hammett, Raymond Chandler and even Robert B. Parker.  Jersey Leo, however, is not a detective. He is just, in his words, “a genetic milkshake with one too many scoops of vanilla, a piano keyboard with no sharps or flats, a punch line to an inside joke that I’ve never been in on.” He might shoot you if he has to. Or, he might give you his last dollar if he knows you are having a harder time surviving than he is.

Si Dunn

 

 

 

 

The Mob and the City: The Hidden History of How the Mafia Captured New York – #bookreview

The Mob and the City: The Hidden History of How the Mafia Captured New York

 

The Mob and the City

The Hidden History of How the Mafia Captured New York

C. Alexander Hortis

(Prometheus Books, Kindle, hardcover)

 

Forget The Godfather, its sequels and numerous other, famous “Mafia” movies. This excellent book cuts straight through the hype, fictions, and glamorizations to tell “the hidden history of how the street soldiers”–not the godfathers–“of the modern Mafia captured New York City during the 1930s, 1940s, and 1950s.” And its author convincingly argues that “the key formative decade for the Mafia was actually the 1930s”–not “the Prohibition era of the 1920s” as numerous books and movies have had us believe. During the Great Depression-ravaged Thirties, the Sicilian mafiosi , the Cosa Nostra (“Our Thing”), rose to become New York’s top crime syndicate, with thousands of foot soldiers and associates eventually “entrenched throughout the economy, neighborhoods, and nightlife of New York.”

The Mob and the City is well-written and superbly researched. C. Alexander Hortis has dug deeply into available resources but also uncovered important new data sources, including previously secret files obtained via the Freedom of Information Act. Hortis presents a convincing case that there was (1) never really a “golden age of gangsters” in New York and (2) definitely not much honor among thieves. “The wiseguys,” he writes, “broke every one of their ‘rules,’ trafficked drugs almost from the beginning, became government informers, betrayed each other, lied, and cheated.” Hortis’s story of how New York City’s booming economy also offered the major crime syndicates “an embarrassment of riches” to exploit and plunder is fascinating and eye-opening reading.

Si Dunn

 

 

 

 

 

 

 

 

 

 

 

 

The Well-Grounded Rubyist, 2nd Edition – A solid, well-written, updated guide to the Ruby programming language – #bookreview

 

black3_cover150

The Well-Grounded Rubyist

David A. Black

(Manning - paperback)

Ruby, predominately known as an object-oriented programming language, shows up frequently on lists of the top ten (or whatever) languages to know. And Ruby has long been paired with Rails to create the popular Ruby on Rails web application framework.

When the forerunner of this book appeared eight years ago, it was titled Ruby for Rails: Ruby Techniques for Rails Developers. And R4R, as it is sometimes known, was well received in both the Ruby and Rails camps.

In 2009, the R4R book was revised and retitled The Well-Grounded Rubyist. “This new edition is  a descendant of R4R but not exactly an update. It’s more of a repurposing,” the author, David A. Black, noted at the time. “The Well-Grounded Rubyist is a ‘just Ruby’ book, and it’s written to be read by anyone interested in Ruby.”

That focus continues in this second edition, which has been updated to cover Ruby 2.1. Ruby newcomers can get started and advance quickly with this fine “just Ruby” book in hand. Ruby veterans also can use it to gain new knowledge and sharpen familiar skills.

Black approaches the process of explaining Ruby “as a kind of widening spiral, building on the familiar but always opening out into the unknown.”

His well-written text does not try to be a “complete” language reference. Instead, reading The Well-Grounded Rubyist is like having a well-experienced and patient mentor close at hand–a mentor who willingly offers up clear examples and explanations. You likely will want to keep this book around as a go-to how-to reference long after you have learned and begun to work with Ruby.

It does help to have at least a little experience with programming before you tackle Ruby and this book. And, if you already have an older version of Ruby installed on your computer, upgrade it to 2.1.x. (As this review is being written, 2.1.2 is the current version.)

Yes, Ruby can be used in several different programming paradigms, including functional and imperative. But The Well-Grounded Rubyist is essentially all-object-oriented-all-the-time in its approach.

“Ruby is an object-oriented language, and the sooner you dive into how Ruby handles objects, the better,” Black states. “Accordingly, objects will serve both as a way to bootstrap the discussion of the language (and your knowledge of it) and as a golden thread leading us to further topics and techniques.”

Si Dunn

Grails in Action, 2nd Edition – A (mostly) winning how-to guide to use with a winning web app framework – #programming #bookreview

 

Grails in Action, Second Edition

Glen Smith and Peter Ledbrook

(Manning - paperback)

Grails finishes at or very near the top in almost any smackdown of full-stack web application frameworks that run on the Java Virtual Machine (JVM). And this recently updated Grails in Action how-to book is mostly a clear winner, too.

According to the Grails.org website, open-source Grails “takes advantage of the Groovy programming language and convention over configuration to provide a productive and streamlined development experience.”

Grails likewise is a world that “moves very quickly,” the authors of Grails in Action, Second Edition emphasize. “There have been substantial changes in Grails in the time it took us to develop Grails in Action, Second Edition. Even moving from Grails 2.2 to 2.3 caused us to make significant changes! Although the book targets Grails 2.3, a new version of Grails (2.4) is already available. Fortunately, everything in here is still valid for the new version.”

In the first chapter, the authors try to move very quickly through the process of getting a Grails application up, running, tested and deployed. But in taking this “Grails in a hurry” approach, they race a bit too quickly and unclearly through the installation instructions, in my opinion. (My Linux and Windows installations did not work correctly at first, and I had to seek out  information on how to sort them out.)

And, in the portion of the chapter where you are told how to get the random-quote database set up and working, it is not always clear which file you are supposed to modify and in which subdirectory. I already had a little bit of experience with Groovy, so that portion went smoothly. But the Grails database steps could have been explained and illustrated more clearly. It took me several tries to finally get the “Quote of the Day” database working and posting random quotes.

The authors take a four-part approach to explaining Grails and its underlying Groovy programming language:

  • Part 1: Introducing Grails – You are shown how to get a nicely formatted Quote of the Day (QOTD) application up and running, while also learning how to work with Groovy.
  • Part 2: Core Grails – You get a “more thorough exploration of the three core parts of the Grails ecosystem: models,
    controllers, and views.” Includes such topics as: domain modeling; query mechanisms; how to query a database in Grails without using SQL; Grails’ web-oriented features; Grails Service objects; Grails’ tags for user interface construction; and Grails support for Ajax.
  • Part 3: Everyday Grails – The focus here is on “building all the necessary pieces of a real-world application.” The chapters cover tests, plug-ins, security in Grails and working with RESTful APIs. The chapters also cover (1) Grails single-page web apps using the Angular.js framework, and (2) Spring integration in Grails.
  • Part 4: Advanced Grails – These chapters zero in on “performance tuning, legacy integration, database transactions, custom build processes, and even how to develop and publish your own plugins.”

Aside from a few small omissions of how-to information, I am happy to have the wide-ranging contents of this book. And I am certainly pleased with what I can now do with Grails and Groovy, after reading Grails in Action, Second Edition.

 –Si Dunn

 

 

The Joy of Clojure – This fine 2nd edition makes learning a Lisp dialect fun (well, almost) – #bookreview

fogus2_cover150

The Joy of Clojure, 2nd Edition

Michael Fogus and Chris Houser

(Manning - paperback)

Several times, I had played with Clojure and considered learning it. But I kept deciding it looked too weird, required too many parentheses and put its operators in strange places. Furthermore, it has always ranked low on the assorted lists of currently “popular” programming languages.

So I moved on and put my focus elsewhere. Indeed, I ignored the first edition of this book. But I am now glad that I have had a chance to reconsider Clojure and to review this new edition from Manning.

The book by Michael Fogus and Chris Houser is intelligently and pleasantly written, and the authors do an excellent job of explaining (and “selling”) Clojure to skeptics like me. Compared with many other programming languages, Clojure is compact. And, it is focused primarily on functional and declarative programming. Also, it offers excellent support for concurrency (where several computations are performed during overlapping time periods rather than waiting for one-at-a-time sequences to complete).

Clojure looks weird because it is one of the several dialects of Lisp, which first appeared in 1958. But Clojure runs on the Java Virtual Machine and JavaScript runtimes. And, it is a functional programming language that has gained a good reputation for being fast and stable. Along with its built-in concurrency support, Clojure also offers the “predictable precision” of immutable and persistent data structures.

The Joy of Clojure is not a book for absolute beginners. Still, Clojure is very easy to install (I have it running on a Windows PC and a Linux PC). And the book’s code examples work well with Clojure’s Read-Eval-Print Loop (REPL).

I am still not convinced there is a lot of “joy” in learning one of the Lisp dialects. Yet, with this fine book as a guide, I am getting a better feel for Clojure and its excellent possibilities. (For example, its compactness and concurrency support likely will make it a lot more popular soon.) And I am enjoying the authors’ text and code examples, even though the latter still look strange as I key them in and modify them to get new results–or error messages.

Bottom line, I am pleased to recommend The Joy of Clojure to others who have been curious but resistant. Resistance is, after all, futile.

Si Dunn

Programming MapReduce with Scalding – Using Hadoop & Scala to do some Big Data – #programming #bookreview

Programming MapReduce with Scalding

Programming MapReduce with Scalding

A practical guide to designing, testing, and implementing complex MapReduce applications in Scala

Antonios Chalkiopoulos

(Packt Publishing - paperback, Kindle)

 

Antonio Chalkiopoulos’s new book has three key goals, and it meets each of them in good, readable fashion.

It describes how MapReduce, Hadoop, and Scalding can work together. It suggests some useful design patterns and idioms. And, it provides numerous code examples of “real implementations for common use cases.”

The book also briefly introduces the Scala programming language and the Cascading platform, two elements vital to the Scalding framework.

Right here, a few brief definitions need to be offered.

According to a Wikipedia definition, MapReduce is both a programming model and “an associated implementation for processing and generating large data sets with a parallel, distributed algorithm on a cluster.”

Meanwhile, the Apache Hadoop website states: “Hadoop MapReduce is a software framework for easily writing applications which process vast amounts of data (multi-terabyte data-sets) in-parallel on large clusters (thousands of nodes) of commodity hardware in a reliable, fault-tolerant manner.”

And: “The Hadoop Distributed File System (HDFS) is a distributed file system designed to run on commodity hardware” and “is highly fault-tolerant….”

Continuing, the Cascading.org website promotes Cascading as “the proven application development platform for building data applications on Hadoop.” Plus, Scalding, it explains, is  “an extension to Cascading that enables application development with Scala, a powerful language for solving functional problems.” Indeed, Scalding is “[a] Scala API for Cascading,” and it provides functionality from custom join algorithms to multiple APIs (Fields-based, Type-safe, Matrix) for developers to build robust data applications. Scalding is built and maintained by Twitter.”

Scalding “makes MapReduce computations look very similar to Scala’s collection API. It’s also a wrapper for Cascading to simplify jobs, tests and data sources on HDFS or local disk.”

Okay, that’s a lot to digest, especially if you are making some of your first forays into the world of Big Data.

Fortunately, Programming MapReduce with Scalding offers clear, well-illustrated, smoothly paced how-to steps, as well as easy-to-digest definitions and descriptions. It takes the reader from setting up and running a Hadoop mini-cluster and local-development environment to applying  Scalding to real-use cases, as well as developing good test and test-driven development methodologies, running Scalding in production, using external data stores, and applying matrix calculations and machine learning.

The book is written for developers who have “a basic understanding” of Hadoop and MapReduce, but is also intended for experienced Hadoop developers who may be “enlightened by this alternative methodology of developing MapReduce applications with Scalding.”

In this book, “[a] Linux operating system is the preferred environment for Hadoop.” And the author includes instructions for how to install and use a Kiji Bento Box, “a zero-configuration bundle that provides a suitable environment for testing and prototyping projects that use HDFS, MapReduce, and HBase with minimal setup time.”  It’s an easy way to get Apache Hadoop up and running in as little as five minutes or so.

Or, if you prefer, you can manually install the required software packages. Either way, you can learn a lot and do a lot with a Hadoop mini-cluster. And, with this book, you can get a very good handle on the Scalding API.

It does help to be somewhat familiar with MapReduce, Scalding, Scala, Hadoop, Maven, Eclipse and the Linux environment.  But Antonio Chalkiopoulo does a good job of keeping the examples accessible even when readers are new to some of the packages. Still, be prepared to take your time and be prepared to do some additional research on the web and ask questions in forums, particularly if any of the required software is new to you.

(The book also can be purchased direct from Packt Publishing at http://goo.gl/Tyw4Sh.)

 

Si Dunn