Si Dunn

Archive for the ‘Book reviews’ Category

Python Cookbook, 3rd Edition – Breaking Away from Python 2 to Python 3 – #programming #bookreview

In Book reviews, Software, Programming, Programmer, How-to, Python, Book review, Software development, Python programming, software testing on June 16, 2013 at 8:32 am

Python Cookbook, 3rd Edition
David Beazley & Brian K. Jones
(O’Reilly - paperback, Kindle)

PYTHON 3 users will be very pleased with this new book. Those who still cling to Python 2 likely will not.

Even though “most working Python programmers continue to use Python 2 in production,” its authors concede, and “Python 3 is not backward compatible with past versions,” this third edition of the popular Python Cookbook is intended to be used only with Python 3.3 and above.

“Just as Python 3 is about the future, this edition…represents a major change over past editions,” Beazley and Jones state. “First and foremost, this is meant to be a very forward looking book. All of the recipes have been written and tested with Python 3.3 without regard to past Python versions or the ‘old way’ of doing things. In fact, many of the recipes will only work with Python 3.3 and above.”

THEIR “ultimate goal,” they point out, was “to write a book of recipes based on the most modern tools and idioms possible. It is hoped that the recipes can serve as a guide for people writing new code in Python 3 or those who hope to modernize existing code.”

The 687-page Python Cookbook, 3rd Edition is not intended for beginning programmers. However, beginners can learn a few things from it and keep the book on their shelves for future use as they gain experience with Python 3.

And, it can be a helpful guide if you are working to update some Python 2 code to Python 3. According to the authors, “many of the recipes aim to illustrate features that are new to Python 3 and more likely to be unknown to even experienced programmers using older versions.”

THE book offers 15 chapters of how-to recipes organized into the following major categories:

  1. Data Structures and Algorithms
  2. Strings and Text
  3. Numbers, Dates, and Times
  4. Iterators and Generators
  5. Files and I/O
  6. Data Encoding and Processing
  7. Functions
  8. Classes and Objects
  9. Metaprogramming
  10. Modules and Packages
  11. Network and Web Programming
  12. Concurrency
  13. Utility Scripting and Administration
  14. Testing, Debugging, and Exceptions
  15. C Extensions

Each of the approximately 260 recipes is presented using a “problem-solution-discussion” format. Here are a few recipe titles chosen at random:

  • “Combining and Concatenating Strings”
  • “Reformatting Text to a Fixed Number of Columns”
  • “Bypassing Filename Encoding”
  • “Iterating over the Index-Value Pairs of a Sequence”
  • “Capturing Variables in Anonymous Functions”
  • “Implementing Stateful Objects or State Machines”
  • “Enforcing an Argument Signature on *args and **kwargs”
  • “Creating Custom Exceptions”
  • “Writing a Simple C Extension Module”

SOME of the book’s code examples are complete. But others, the authors caution, “are often just skeletons that provide essential information for getting started, but which require the reader to do more research to fill in the details.”

If you are serious about Python and keeping pace with its progress, you should seriously consider getting this excellent how-to book.

Si Dunn

Creating Mobile Apps with jQuery Mobile – A good & wide-ranging how-to guide – #programming #bookreview

In Book review, Book reviews, Drupal, How-to, jQuery, Mobile apps, Programmer, Programming, Software development, user experience, UX on June 16, 2013 at 6:08 am

Creating Mobile Appls with jQuery Mobile
Shane Gliser
(Packt Publishing – paperback, Kindle)

The long tagline on the cover of Shane Gliser’s new book deftly sums up its contents:  “Learn to make practical, unique, real-world sites that span a variety of industries and technologies with the world’s most popular mobile development library.”

Gliser unabashedly describes himself as a jQuery “fanboy…if it’s officially jQuery, I love it.” He is an experienced mobile developer and blogger who operates Roughly Brilliant Digital Studios. He also has some background in mobile UX (user experience).

Both aspects of that background serve him well in his smoothly written, nicely illustrated how-to book that zeroes in on jQuery Mobile, a  “touch-optimized” web framework for smartphones and tablets.

You may be surprised when you extract the 234-page book’s code examples and related items and find that the ZIP file is almost 100MB in size. Gliser covers a lot of ground in his 10 chapters. And each chapter contains a project.

Still, what you don’t do in the first chapter, “Prototyping jQuery Mobile,” is work at a computer. In the true spirit of UX, Gliser has you start first with a pen and some 3×5 note cards. Your goal is to rough out some designs for a jQuery Mobile website for a new pizzeria.

Why the ancient technology? “We are more willing to simply throw out a drawing that took less than 30 seconds to create,” Gliser writes. Otherwise, it’s too easy to stay locked into one design while trying different ways to make its code work. And: “Actually sketching by hand uses a different part of the brain and unlocks our creative centers.”

Best of all, working first with paper sketches enables team members who are not coders to contribute some comments, suggestions, and corrections for the emerging design.

In Chapter 2, “A Mom-and-Pop Mobile Website,” you step over to your computer with the paper prototype in hand and start converting the final design “into an actual jQuery Mobile (jQM) site that acts responsively and looks unique.” You also begin building “a configurable server-side PHP template,” and you work with custom fonts, page curl effects using CSS, and other aspects of creating and optimizing a mobile site.

“Mobile is a very unforgiving environment,” Gliser cautions, “and some of the tips in this section will make more difference than any of the ‘best coding practices.’” Indeed,  he wants you to be aware of optimization “at the beginning. You are going to do some awesome work and I don’t want you or your stakeholders to think it’s any less awesome, or slow, or anything else because you didn’t know the tricks to squeeze the most performance out of your systems. It’s never too early to impress people with the performance of your creations.”

Chapter 3, “Analytics, Long forms, and Front-end Validation,” moves beyond “dynamically link[ing] directly into the native GPS systems of iOS and Android.” Instead, Gliser introduces how to work with Google static maps, Google Analytics, long and multi-page forms, and jQuery Validate. As for static maps, he says, “Remember to always approach things from the user’s perspective. It’s not always about doing the coolest thing we can.” Indeed, a static map may be all the user needs to decide whether to drive to a business, such as a pizzeria, or just call for delivery. And, as for Google Analytics: “Every website should have analytics. If not, it’s difficult to say how many people are hitting your site, if we’re getting people through our conversion funnels, or what pages are causing people to leave our site.”

Meanwhile, desktop users are familiar with (and frequently irritated by) long forms and multi-page forms. Lengthy forms can be real deal-breakers for users trying to negotiate them on mobile devices. The author presents some ways to shorten long forms and break them “into several pages using jQuery Mobile.” And he emphasizes the importance of using the jQuery Validate plug-in to add validation to any page that has a form, so the user can see quickly and clearly that an entry has a problem.

The focus in Chapter 4, “QR Codes, Geolocation, Google Maps API, and HTML5 Video,” is on handling concepts that can be “applied to any business that has multiple physical locations.” Gliser uses a local movie theater chain as his development example. A site is created that makes use of QR codes, geolocation, Google Maps, and linking to YouTube movie previews. Then, he shows how to use embedded video to keep users on the movie chain’s site rather than sending them off to YouTube.

In Chapter 5, the goal is “to create an aggregating news site based off social media.” So the emphasis shifts to “Client-side Templating, JSON APIs, and HTML5 Web Storage.” Notes Gliser: “Honestly, from a purely pragmatic perspective, I believe that the template is the perfect place for code. The more flexible, the better. JSON holds the data and the templates are used to transform it. To draw a parallel, XML is the data format and XSL templates are used to transform. Nobody whines about logic in XSL; so I don’t see why it should be a problem in JS templates.”

Next, he shows how to patch into Twitter’s JSON API to get “the very latest set of trending topics” and “whittle down the response to only the part we want…and pass that array into JsRender for…well…rendering” in a manner that will be “a lot cleaner to read and maintain” than looping through JSON and using string concatenation to make the output.

Other topics in Chapter 5 include programmatically changing pages in jQuery Mobile, understanding how jQuery Mobile handles generated pages and Document Object Model (DOM) weight management, and working with RSS feeds. Gliser points out that there is still “a lot more information out there being fed by RSS feeds than by JSON feeds.” The chapter concludes with looks at how to use HTML5 web storage (it’s simple, yet it can get “especially tricky on mobile browsers”), and how to leverage the Google Feed API. Says Gliser: “The Google Feeds [sic] API can be fed several options, but at its core, it’s a way to specify an RSS or ATOM feed and get back a JSON representation.”

Chapter 6 jumps into “the music scene. We’re going to take the jQuery Mobile interface and turn it into a media player, artist showcase, and information hub that can be saved to people’s home screens,” Gliser writes. He proceeds to show how “ridiculously simple it can be to bring audio into your jQuery Mobile pages.” And he explains how to use HTML5 manifest “and a few other meta tags” to save an app to the home screen. Furthermore, he discusses how to test mobile sites using “Google Chrome (since its WebKit) or IE9 (for the Windows Phone)” as browsers that are shrunken down to mobile size. “Naturally, this does not substitute for real testing,” he cautions. “Always check your creations on real devices. That being said, the shrunken browser approach will usually get you 97.5 percent of the way there. Well…HTML5 Audio throws that operating model right out the window.”

Since “mobile phones are quickly becoming our photo albums,” Gliser’s Chapter 7, “Fully Responsive Photography,” shows first how to create a basic gallery using Photoswipe. Then, in a section focused on “supporting the full range of device sizes,” he explains how to start using responsive web design (RWD), “the concept of making a single page work for every device size.” The issues, of course, range from image sizes and resolutions to text sizes and character counts per line, on screens as small as smart phones and tablets, or larger.

In Chapter 8, “Integrating jQuery Mobile into Existing Sites,” three topics are key: (1) “Detecting mobile – server-side, client-side, and the combination of the two”; (2) “Mobilizing full site pages – the hard way”; and (3) Mobilizing full site pages – the easy way.” Gliser avoids some potential “geek war” controversies over “browser sniffing versus feature detection” when detecting mobile devices. He zeroes in first on detection using WURFL for “server-side database-driven browser sniffing.” He also shows how to do JavaScript-based browser sniffing, which he concedes may be “the worst possible way to detect mobile but it does have its virtues,” especially if your budget is small and you want to exclude older devices that can’t handle some new JavaScript templating. He also describes JavaScript-based feature detection using Modernizer and some other feature-detection methods.

As for mobilizing full-site pages “the hard way,” he states that there is really “only one good reason: to keep the content on the same page so that the user doesn’t have one page for mobile and one page for desktop. When emails and tweets and such are flying around, the user generally doesn’t care if  they’re sending out the mobile view or the desktop view and they shouldn’t.” He focuses on how “it’s pretty easy to tell what parts of a site would translate to mobile” and how to add data attributes to existing tags “to mobilize them. When jQuery’s libraries are not present on the page, these attributes will simply sit there and cause no harm. Then you can use one of our many detection techniques to decide when to throw the jQM libraries in.”

Mobilizing full-size pages “the easy way” involves, in his view, “nothing easier and cleaner than just creating a standalone jQuery Mobile page…and simply import the page we want with AJAX. We can then pull out the parts we want and leave the rest.” His code samples show how to do this.

Chapter 9, “Content Management Systems and jQM” looks at the pros and cons of using three different content management systems (CMS) with jQuery Mobile: WordPress, Drupal, and Adobe Experience Manager. “The key to get up and running quickly with any CMS is, realizing which plugins and themes to use,” Gliser writes.  He also explains how to use mobile theme switchers.

Drupal offers some standard plugins that provide contact forms, CAPTCHA, and custom database tables and forms, and enable you to “create full blown web apps, not just brochureware sites,” he notes. But: “The biggest downside to Drupal is that it has a bit of a learning curve if you want to tap its true power, Also, without some tuning, it can be a little slow and can really bloat your page’s code.” .

As for Adobe Experience Manager (AEM), Gliser merely introduces it as a “premier corporate CMS” and a “major CMS player that comes with complete jQuery Mobile examples.” He doesn’t show “how to install, configure, or code for AEM. That’s a subject for several training manuals the size of this book.”

Chapter 10, the final chapter, is titled “Putting It All Together — Flood.FM.” Using what you’ve learned in the book (including prototyping the interfaces on paper first), you create “a website where listeners will be greeted with music from local, independent bands across several genres and geographic regions.” Along the way, Gliser introduces Balsamiq, “a very popular UX tool for rapid prototyping.” He discusses using Model-View-Controller (MVC), Model-View-ViewModel (MVVM), and Model-View-Whatever (MV*) development structures with jQuery Mobile. He shows how to work with the Web Audio API , and he illustrates how to prompt users to download the Flood.FM app to their home screens. He finishes up with brief discussions of accelerometers, cameras, “APIs on the horizon,” plus “To app or not to app, that is the question” and whether you should compile an app or not. Finally, he shows PhoneGap Build, the “cloud-based build service for PhoneGap.”

Bottom line: Shane Gliser’s book covers a lot of  useful ground for those who are ready to learn jQuery Mobile.

Si Dunn

Arduino Workshop – An excellent hands-on guide with 65 DIY projects – #arduino #bookreview

In Arduino, Book review, Book reviews, DIY, Electronics, HTML5, Kindle, Paperback, Programming, Software on May 31, 2013 at 7:54 am

Arduino Workshop
A Hands-On Introduction with 65 Projects
John Boxall
(No Starch Press - paperback, Kindle)

If you’ve been wanting to tinker with a tiny Arduino computer, this excellent book can show you how to do much more than simply get started.

Indeed, John Boxall’s Arduino Workshop can keep you busy, challenged and intrigued for a long time as you work your way through basic electronics, basic Arduino programming, and a big selection of interesting and useful projects. The book’s instructions are written clearly, and they feature numerous close-up photographs, diagrams, screenshots, code listings, and other illustrations that can help you perform the how-to steps for each project.

The devices you can build with the open source Arduino microcomputer platform range from a battery tester for single-cell batteries to a GPS logger that records your travels and displays them on Google Maps. Some other examples include a digital thermometer that displays temperature changes on an LCD screen, a device that reads radio-frequency identification (RFID) tags, and a remote-controlled toy tank that you steer with an infrared TV remote. You can even create and program your own breadboard Arduino microcontroller using a handful of parts and Boxall’s instructions, diagrams, and photographs.

If that isn’t enough projects, the book also shows how to create a couple of games, plus an Arduino texter that sends your cell phone a text message when a particular event occurs. And you can rig up a simple Arduino device that will allow you to control its digital output pins by sending it a text message from your phone.

With Arduino projects, you not only do some computer programming (to create the “sketches” that control the microcomputer), you likewise learn to work with electronic components such as resistors, capacitors, LEDs and LCDs, oscillator crystals, voltage regulators, and other small parts and devices.

You also can meet and learn from other Arduino enthusiasts, Boxall notes in Arduino Workshop. “The Arduino project has grown exponentially since its introduction in 2005,” he writes. “It’s now a thriving industry, supported by a community of people united with the common bond of creating something new. You’ll find both individuals and groups, ranging from interest groups and clubs to local hackerspaces and educational institutions, all interested in toying with the Arduino.”

Si Dunn

Arquillian Testing Guide – For better integration testing & functional testing on the JVM – #programming #bookreview

In Arquillian, Book review, Book reviews, How-to, integration testing, Java, JVM, Kindle, Programmer, Programming, Software development, software testing on May 30, 2013 at 1:31 pm

Arquillian Testing Guide
John D. Ament
(Packt Publishing – Paperback, Kindle)

If you have some experience with integration testing and functional testing on a Java virtual machine (JVM), John D. Ament’s important new book can help you get up to speed with the Arquillian testing platform’s numerous features and capabilities.

Arquillian “leverages JUnit and TestNG to execute test cases against a Java container,” Ament explains. The Arquillian framework, he adds, has three major sections: “test runners (JUnit or TestNG), containers (Weld, OpenWebBeans, Tomcat, GlassFish, and so on), and test enrichers (integration of your test case into the container that your code is running in.)” Also: “ShrinkWrap is an external dependency for you to use with Arquillian; they are almost sibling projects. ShrinkWrap helps you define your deployments, and your descriptors to be loaded to the Java container you are testing against.”

Ament’s 224-page book shows how to write simple code for various Java application tests but also explains how to develop rich test cases that you can run automatically.

The author uses the JUnit test container in his examples but explains how you can use the TestNG test container, if you prefer.

While the book is aimed at readers with intermediate experience, newcomers to Java testing can learn from it, too. Before diving into the process of explaining Arquillian, Ament describes “the fundamentals of a test case,” from an Arquillian perspective, of course. And he devotes a chapter to “The Evolution of Testing,” from the early days of manually testing single units to the advent of automated testing with powerful new tools. (Manual testing, by the way, is still important and will not go away soon, Ament indicates. “There is likely no removing manual testing for functional applications,” he writes.

“Manual testing should be considered when performing user acceptance testing, where you need to validate that the application functions the way you would expect end to end. From a quality assurance standpoint, it’s the most direct way to make sure an application works the way expected.” But, he warns, “a developer shouldn’t wait until this point to begin testing….”

He also devotes a chapter to the basics and the process of container testing. “Arquilian is all about testing your code inside a container,” he says. “Containers represent what your application will run on.” His text examines each of the “three primary ways that Arquillian can interact with a container — embedded, managed, and remote.”

Embedded containers, he notes, “typically run on the same JVM as your test case. Next are managed containers, which Arquillian will start up for you during the test process and shut down after the tests are run but run in a different JVM. Finally, there are remote containers, which are assumed to be running prior to the test and will simply have deployments sent and tests executed.”

The book’s remaining chapters take the reader deeper into the testing processes and how to use of Arquillian’s features and extensions.

Arquillian is not software you can learn to use effectively in a single weekend of hacking. You must learn it by using it and using it a lot, Ament emphasizes. “Run as many tests as you can with Arquillian…[y]ou make the best use of Arquillian when you use it throughout 100 percent of your tests.”

Arquillian Testing Guide is available through several sources, including Amazon and Packt Publishing.

Si Dunn

Puppet 3 Beginner’s Guide – Automate configuration management & become a better system admin – #programming #bookreview

In Book review, Book reviews, configuration mnagement, How-to, Kindle, Linux, Network administration, Paperback, Programmer, Programming, Software on May 30, 2013 at 8:45 am

Puppet 3 Beginner’s Guide
John Arundel
(Packt Publishing – paperback, Kindle)

If you administer a small network built around just a few servers, you may still be doing at least some of the configuration management by hand. You literally move from machine to machine, manually entering updates, changes, or fixes. And your small network may be running several different brands–and vintages–of hardware and software, which complicates the update and repair process.

However, infrastructure consultant John Arundel warns, once you get “[b]eyond ten or so servers, there simply isn’t a choice. You can’t manage an infrastructure like this by hand. If you’re using a cloud computing architecture, where servers are created and destroyed minute-by-minute in response to changing demand, the artisan approach to server crafting just won’t work.”

In his new book, Puppet 3 Beginner’s Guide, Arundel emphasizes: “Manual configuration management is tedious and repetitive, it’s error-prone, and it doesn’t scale well. Puppet is a tool for automating this process.”

Among “UNIX-like systems,” there are at least three major configuration management (CM) packages, including Puppet. The others are Chef and CFEngine, plus a few more competitors. Arundel calls them “all great solutions to the CM problem…it’s not very important which one you choose as long as you choose one.” But he hopes, of course, you will favor Puppet and his well-written how-to guide.

Puppet 3 Beginner’s Guide is structured to help system administrators “start from scratch…and learn how to fully utilize Puppet through simple, practical examples,” he writes.

He places important emphasis on the rapidly closing “divide between ‘devs,’ who wrangle code, and ‘ops,’ who wrangle configurations. Traditionally, the skills sets of the two groups haven’t overlapped much,” he notes. “It was common until recently for system administrators not to write complex programs, and for developers to have little or no experience of building and managing servers.”

Today, system admins are “facing the challenge of scaling systems to enormous size for the web, [and] have had to get smart about programming and automation.” Meanwhile, “[d]evelopers, who now often build applications, services, and businesses by themselves, couldn’t do what they do without knowing how to set up and fix servers,” he says.

Therefore, “[t]he term ‘devops’ has begun to be used to describe the growing overlap between these skill sets…Devops write code, herd servers, build apps, scale systems, analyze outages, and fix bugs. With the advent of CM systems, devs and ops are now all just people who work with code.”

Arundel’s 184-page Puppet 3 Beginner’s Guide offers 10 chapters smoothly structured with headings, short paragraphs, code examples, and other illustrations. He has generated his code examples using the Ubuntu 12.04 LTS “Precise” distribution of Linux. But he explains how to load the software using “Red Hat Linux, CentOS, or another Linux distribution that uses the Yum package system,” as well.

The chapters are:

  • Chapter 1, Introduction to Puppet
  • Chapter 2, First Steps with Puppet
  • Chapter 3, Packages, Files, and Services
  • Chapter 4, Managing Puppet with Git
  • Chapter 5, Managing Users
  • Chapter 6, Tasks and Templates
  • Chapter 7, Definitions and Classes
  • Chapter 8, Expressions and Logic
  • Chapter 9, Reporting and Troubleshooting
  • Chapter 10, Moving on Up

That final chapter covers a range of topics, including how to make Puppet code “more elegant, more readable, and more maintainable.” The author offers “links and suggestions for further reading.” And he describes several projects to help you “improve your skills and your infrastructure at the same time.” Those projects, he says, “provide a series of stepping-stones from your first use of Puppet to a completely automated environment.”

Besides Linux, Puppet will run on other several platforms, including Windows and Macs. But there is almost no help for those in Arundel’s book. Essentially, it’s Linux or bust. For other operating systems, you will need to refer to the Puppet Labs website.

It can take a bit of work to get Puppet installed and properly configured. But once you have Puppet running, the Puppet 3 Beginner’s Guide can help you become both a proficient Puppet user and a more efficient, knowledgeable, and versatile system administrator.

Si Dunn

Book Brief – Programming Grails – A new, solid guide for experienced developers – #programming #bookreview

In Book review, Book reviews, Grails, Groovy, How-to, JVM, Kindle, Programmer, Programming, Ruby on Rails, Software, Software development, software testing, Spring MVC on May 29, 2013 at 8:50 pm

Programming Grails
Burt Beckwith
(O’Reilly – paperback, Kindle )

Burt Beckwith is an experienced core developer on the Grails software team at SpringSource. His new book, Programming Grails, is written primarily for experienced Grails developers “who want to dig deeper into the architecture and understand more about how Grails works its magic and how it integrates with Groovy, Spring, Hibernate, and other technologies.”

Beckwith adds that “[d]evelopers with experience in similar frameworks such as Spring MVC, JEE, or Ruby on Rails should find this book useful in understanding how Grails implements features to which they are accustomed.”

He cautions that Programming Grails “should not be your first Grails book, since it presumes a good deal of previous experience and understanding, so be sure to read a more comprehensive Grails book first.”

The 12-chapter, 344-page book focuses on the inner workings of the Grails 2.0 feature set and emphasizes “best practices for building and deploying Grails applications,” including topics such as “performance, security, scaling, tuning, debugging, and monitoring.” It is written clearly, and its text is kept reasonably short between topic headings. Numerous short code samples and other illustrations are included.

Grails’ creator, Graeme Rocher, has given this book a solid thumb’s up, stating that “it goes much deeper than any other Grails book I have seen.”

Lunch with Buddha – An entertaining, engrossing, thought-provoking American road-trip novel – #bookreview

In American West, Authors, Book review, Book reviews, Books, Fiction, Kindle, Literature, Philosophy, Politics, Popular culture, Religion, self-publishing, Travel, United States on May 15, 2013 at 12:06 pm

Lunch with Buddha
Roland Merullo
(PFP/Ajar, Kindle, paperback)

To be honest, I was not really aware of Roland Merullo until his publisher contacted me offering a review copy of an enticingly titled new novel, Lunch with Buddha.

I could blame my “Who?” reaction on my intense focus toward reviewing technology books over the past two years. And I could blame it on empirical evidence that it’s really tough to sell works of fiction these days.

Indeed, several writers of novels and short story collections have told me they don’t get much publicity help from their publishers. Some also have declared they were taking up self-publishing so they could (a) get their books into print (or its digital equivalent), (b) keep more of their paltry earnings, and (c) try their hand at book promotion. Furthermore, I have data — very hard data — showing that virtually no one on Planet Earth has yet read my novel, Erwin’s Law, nor my experimental novella, Jump.

Thus, bottom line, I have not been paying very close attention to the world of fiction lately.

Immediately, I was impressed  (and jarred) to learn that (1) Roland Merullo’s seventh novel, Breakfast with Buddha, is now in its 14th printing; (2) Lunch with Buddha, published late last year, is his eleventh novel and already in its second printing; AND (3) Lunch with Buddha’s completion and publication was funded, at least in part, with significant Kickstarter contributions from Merullo fans.

Intriguingly, Roland Merullo turned down a six-figure advance from a major publishing house and chose a small, independent publisher to bring out his new book.

So he must be good, right?

He’s better than good, actually. Roland Merullo is one of the best, most entertaining writers I’ve encountered in a long time. Seldom am I hooked by a book’s first few paragraphs. But, in Lunch with Buddha, Merullo blends verbal calmness, clarity, wit and depth to create an engaging, absorbing story that flows smoothly from darkly humorous opening to meaningful end.

His new tale is a road-trip novel that covers an odd, yet very American, route: from Seattle to North Dakota, in a borrowed, battered pickup truck nicknamed “Uma.”

Otto Ringling, a New York editor of culinary books and recent widower, is taking the journey with reluctance, while searching for peace of mind and new meanings for his suddenly altered life.

His traveling companion on the drive is his sister’s former guru, “His Holiness” Volya Rinpoche, a Siberian “semi-Buddhist” who now is the sister’s husband and father of their young daughter, Shelsa. Volya still has many questions and misconceptions about life in these not-so-United States. But he also has an infectious spirit, an unshakable spirituality, and plenty of confidence that all will be well and work out in the end.

Otto, meanwhile, is just trying to get a renewed grip on existence. “One of the side effects of losing a spouse–at least for me–had been a peculiar inability to perform the most mundane tasks,” he says in the book, adding:

“Making plane and hotel reservations, shopping for food, setting out the trash on time–these duties, which ordinarily I would have completed with a practiced ease, now seemed as daunting as the learning of a Chinese dialect. I let things slide. For the first time in family history, bills were paid late. The dry cleaners had to call three times to remind me to pick up my shirts. My children could be harsh with me about these failings, but I took their casual criticisms like a battered old fighter takes punches. I would stand. I was determined to stand. I was determined to stay sane, and love them, and help them envision a new life after our old one had been ripped to pieces.”

While Otto and Volya drive across Washington state, Idaho, Montana, and into North Dakota, Otto’s sister, Cecelia, her young daughter Shelsa, and Otto’s children Anthony (20) and Natasha (22), are all riding Amtrak, taking a separate route. They’ve been to Whidbey Island, off the coast of Washington state, to witness Otto scattering his wife’s ashes. Now they are heading for Dickinson, North Dakota, where Celia and Volya live — in Otto’s view – “on the far side of some line that marked the boundary of ordinary American reality.”

Along the way, Otto and Volya have several humorous–and sometimes troubling–encounters with contemporary American culture and values. Otto, for example, tries to explain to Volya the meanings of some strange signs they see along the highway, such as “REPTILE ZOO AND EXPRESSO” and “EAT BIG FOOD.”

Otto and Volya also have debates over religion and spirituality as the widower seeks understandable meanings he can attach to life, death, and whatever lies beyond our mystery-shrouded finality. For example:

 “What is the goal?” I asked, trying to slip away from it. “What’s the whole point? Enlightenment? Eternal life? What?”

He patted me on the shoulder for the millionth time, and said, “You purify. You go and go. Life cuts you and you try and try and try and pretty soon–”

“You become beautiful.”

“Yes. Good.”

“But toward what are we going and going? What does the beauty look like?”

He shrugged almost helplessly, and for a moment I was gripped hard by the hand of doubt. He seemed only an ordinary man then, and I wanted more than that from him, more than cryptic answers and shrugs. A small inner voice suggested he’d been fooling us all these years, playing a role, maybe even working a scam.

“I can show you,” he said. “I can’t tell you.”

“All right. Please show me, then. I’m having a crisis of faith. I’m a little bit lost.”

He nodded sympathetically. “We find you,” he said. “Don’t worry too much….”

Lunch with Buddha has the same key characters as Roland Merullo’s best-selling Breakfast with Buddha. And a third book, aptly titled Dinner with Buddha, is said to be in the works.

Fortunately, Lunch is written so it can be picked up and immediately enjoyed by those who have not previously read Breakfast. Indeed, Lunch with Buddha will make many readers go back and devour Breakfast, then eagerly anticipate Dinner–and check out some of Roland Merullo’s other works of fiction and nonfiction while waiting for the next serving.

Geoffrey Chaucer and Jack Kerouac are the two names that  pop most quickly to mind when the debate topic is “classic road-trip novels.”  I move that we now add Roland Merullo to that short, but esteemed, list.

Si Dunn

Absolute OpenBSD: Unix for the Practical Paranoid, 2nd Edition – A good & long-overdue update – #bookreview

In Book review, Book reviews, How-to, Kindle, Software, System administration, UNIX on May 8, 2013 at 12:57 pm

Absolute OpenBSD, 2nd Edition
Unix for the Practical Paranoid
Michael W. Lucas
(No Starch Press – Kindle, paperback)

This updated new edition likely will be hailed — and rightly so — as a major event by many dedicated users of OpenBSD. After all, the first edition of Michael W. Lucas’ book was published a full decade ago, back when, the author concedes, he still had hair.

OpenBSD’s founder and long-time administrator Theo de Raadt has called this new edition both “[t]he definitive book on OpenBSD” and “a long-overdue refresh.” The praise can’t get much higher in OpenBSD-land.

OpenBSD is a highly secure, Unix-like operating system frequently used in Domain Name System (DNS) servers, routers, and firewalls. It also can run on a wide array of computer hardware, ranging from new systems to old VAXes, 386 machines, Apple’s PowerPC Macintoshes, and most products from Sun.

“Old systems can run OpenBSD quite well,” Lucas notes. “I’ve run OpenBSD/i386 quite nicely on a 166 MHz processor with 128MB of memory. You probably have some old system lying around that’s perfectly adequate for learning OpenBSD.”

Indeed, he explains, “As a matter of legacy, OpenBSD will run on hardware that has been obsolete for decades because the hardware was in popular use when OpenBSD started, and the developers try to maintain compatibility and performance when possible.”

The OpenBSD software has an intriguing and complex history that involves the 1980s breakup of AT&T, lots of lawsuits, the Berkeley Software Distribution (BSD) project, the University of California, and the eventual emergence of the “BSD license.” The result was “perhaps the freest of the free operating systems,” Lucas says.

Today, Lucas emphasizes, “OpenBSD strives to be the most secure operating system in the world.” OpenBSD developers constantly work to try to “eliminate [security] problems before they exist,” he states.

“OpenBSD is a gift. You’re free to use it or not. As with any gift, you can do whatever you want with it. But you’re not free to bug the developers for features or support.”

His 491-page second edition offers a heavy dose–23 chapters–of how-to instructions. And readers are encouraged to read OpenBSD’s man (manual) pages online. In a book where the first chapter is titled “Getting Additional Help” and the second is titled “Installation Preparations,” you can guess that this is not aimed at absolute newcomers. Actually, Lucas says: “This book is written for experienced Unix users or system administrators who want to add OpenBSD to their repertoire.”

Still, if you want to learn and use OpenBSD, you will need this book — and some online documentation and very likely some advice from the OpenBSD community, as well. There don’t seem to be recent introduction-level books floating around. However, there are a few tutorial sites, including this one. And OpenBSD.org maintains a list of support and consulting specialists. Training also is available from a number of companies that can be found via the Web.

If you want to use OpenBSD but not spend much time learning it, you also can purchase a support contract and let someone else set up and maintain your system. Even then, you likely will want to have this new edition of Absolute OpenBSD handy for reference–and for learning, just in case, down the line, you change your mind.

Si Dunn

The Modern Web: Multi-Device Web Development with HTML5, CSS3, and JavaScript – #bookreview

In application development, Book review, Book reviews, Cascading Style Sheets, CSS, CSS3, ebook, HTML5, Internet, JavaScript, jQuery, Kindle, Programmer, Programming, Software development, Web applications, Web apps, Web designer, Web developer, Web development on May 6, 2013 at 3:51 pm

The Modern Web
Multi-Device Web Development with HTML5, CSS3, and JavaScript
Peter Gasston
(No Starch Press – Kindle, paperback)

After a quick first glance, you might look right past this book. You might assume its title, “The Modern Web,” simply introduces some kind of heavily footnoted, academic study of the Internet.

Not so, Web breath. In this case, it’s the subtitle that should grab your attention.

Whether you hope to go into web development, or you’re already there, Peter Gasston’s new book can help you get an improved grasp on three important, device-agnostic tools that will be essential to your work and career development. They are: HTML5, CSS3, and JavaScript, that not-so-simple programming language that many new web specialists often try to avoid learning. (That’s because, typically, it’s easier, more fun and a bit less cryptic to work with HTML5 and CSS3.)

Also, Gasston notes, there have been big explosions in the number of libraries and frameworks that use JavaScript, further clouding a developer’s ability to know which ones he or she should learn next. (The author limits his coverage to four: jQuery, YepNope, Modernizr, and Mustache.)

Gasston’s well-written book zeroes in on the three “web technologies that can be used anywhere, from open websites to device-specific web apps.” And on all sorts of devices, ranging from tiny phones to tablet computers to wall-covering HDTVs.

And his teaching aim is to show you “modern coding methods and techniques that you can use to build websites across multiple devices or that are tailored to the single device class you’re targeting.”

By the way, “websites” is simply a shorthand term the author uses “to avoid repetition. The features you’ll learn from this book are relevant to websites, web applications, [and] packaged HTML hybrid applications–in short, anything that can use HTML, CSS, and JavaScript.”

Gasston also wants you to learn that “fast” is the main thing that matters to those who will use your site. “Your site needs to be fast–and feel fast–regardless of the device it’s being displayed on,” he emphasizes. “And fast means not only technical performance (which is incredibly important) but also the responsiveness of the interface and how easily users can navigate the site and find what they need to complete the task that brought them to you in the first place.”

His 243-page book contains many short, useful code examples and illustrations, and is excellent for developers who have at least a little bit of experience with HTML5, CSS3, and JavaScript but aren’t sure where and how to focus their energies and attention for the rapidly changing career road ahead.

The Modern Web offers a well-organized introduction, plus 11 chapters:

  1. The Web Platform
  2. Structure and Semantics
  3. Device Responsive CSS
  4. New Approaches to CSS Layouts
  5. Modern JavaScript
  6. Device APIs
  7. Images and Graphics
  8. New Forms
  9. Multimedia
  10. Web Apps
  11. The Future

There also are two appendices: Browser Support as of March 2013 and Further Reading.

Peter Gasston has been a web developer for more than 12 years, and his previous book is The Book of CSS3.

He notes that “[t]he Web is constantly evolving, and book publishing means taking just a single snapshot of a moment. Some things will change; some will wither and be removed. I’ve tried to mitigate this by covering only technologies that are based on open standards rather than vendor-specific ones and that already have some level of implementation in browsers.”

He urges developers to stay alert to changing Web standards and to “be curious, be playful, keep on top of it all. He stresses: “There’s never been a more exciting time to work in web development, but you’ll need to put in an extra shift to really take advantage of it.”

Si Dunn

Mastering the Nikon D600 – Digital Darrell’s excellent new how-to guide – #photography #bookreview

In Book review, Book reviews, Camera, Camera lens, Digital camera, Digital photography, Digital single lens reflex, DSLR, How-to, Kindle, Nikon, Paperback, Photographer, Photography on May 3, 2013 at 9:56 am

Mastering the Nikon D600
Darrell Young
(Rocky Nook – Kindle, paperback)

Digital Darrell is at it again. This time, he has delivered an excellent how-to guide for using the Nikon D600 camera. This high-quality new digital SLR, he says, “can deliver some of the highest-quality images out there.”

Furthermore, he notes, the D600 offers “a rugged camera body designed to last. With this camera, we can return to the days when we seldom bought a new camera body and instead put our money into new Nikkor lenses. Wouldn’t you like to have some new lenses?”

As you would now expect with a feature-rich digital SLR, “the Nikon D600 is a rather complex camera, and it requires a careful study of resources like this book to really get a grasp on the large range of features and functions.”

The Nikon D600 is not recommended for total newcomers to digital photography. But it definitely looks like a rugged, yet lightweight winner for hobbyists and professional photographers alike. And it can be, the author says, an excellent choice for hiking, skydiving, underwater activities,  and other environments where camera weight and sturdiness are important.

Darrell Young’s hefty 547-page book devotes most of its pages to menu choices within the camera, plus step-by-step procedures for using features, changing settings, and picking the best settings for various situations.

Digital Darrell has written about 10 other books on Nikon digital cameras, including Mastering the Nikon D800 and  Mastering the Nikon D7000.

His new book is best read while working hands-on with a Nikon D600, getting it configured for the way you want it to work. (“Your Nikon D600, like a chameleon, can change to a different style of shooting with a mere turn of the Mode dial” once you’ve worked your way through various parts of  “an incredibly dense series of 50 functions,” Young writes.

Example photographs are kept to a minimum. If you need some basic, how-to-take-good-photographs help, add another Darrell Young book to your collection. But definitely get this one, too, if you want to get the most you can from your new Nikon D600.

Si Dunn

Follow

Get every new post delivered to your Inbox.

Join 1,350 other followers