Mac Hacks – More than 50 ways to unlock the power of OS X – #apple #mac #bookreview

Mac Hacks
Tips & Tools for Unlocking the Power of OS X
Chris Seibold
(O’Reilly – paperback, Kindle)

Many people buy Apple’s Macintosh computers precisely because they do not want to have to mess with their machines. They just want to open a specific app, use it, close it and move on to the other things in their lives.

But many other users want to dive inside their Macs. They want to tinker with how it works, change settings for greater efficiency or utility, and know all that they can know about taking control and making their machine do new tricks and handle new tasks.

Mac Hacks is a fine and useful guidebook for anyone who isn’t afraid to change default settings or bring up a cursor at a command-line interface. It is also an excellent how-to guide if you want to learn how to make OS X on your Mac work better for your needs.

Author Chris Seibold wisely launches his book with a caution: “Hacking is fun and productive, but it can also introduce an element of danger….” And he starts at the very basics of hacking: carefully backing up your files before you start driving your Mac off its familiar, well-beaten paths. “With a good backup,” he writes, “you don’t start over, you simply restore. Without a good backup, well, good luck….” Indeed, his first “quick hack” shows how to change the default one-hour time-interval setting for the Mac’s Time Machine backup utility, so you can back up sooner (or later).

Seibold’s 11-chapter book contains 51 hacks that range from creating a bootable flash drive to learning how to use “the Unix side of your Mac” and putting your iTunes library on a separate disk. He also offers several more “quick hacks,” including how to copy the Mac’s Recovery partition to a Flash drive, so it can be available if your Mac’s hard drive fails.

Some of the book’s hacks have been provided by respected “guest hackers.”  But Seibold himself is no slouch at Mac hacking. He has written two other books for O’Reilly: the Big Book of Apple Hacks and the Mac OS X Lion Pocket Guide.

Si Dunn

Hadoop is hot! Three new how-to books for riding the Big Data elephant – #programming #bookreview

In the world of Big Data, Hadoop has become the hard-charging elephant in the room.

Its big-name users now span the alphabet and include such notables as Amazon, eBay, Facebook, Google, the New York Times, and Yahoo. Not bad for software named after a child’s toy elephant.

Computer systems that run Hadoop can store, process, and analyze large amounts of data that have been gathered up in many different formats from many different sources.

According to the Apache Software Foundation’s Hadoop website: “The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage.”

The (well-trained) user defines the Big Data problem that Hadoop will tackle. Then the software handles all aspects of the job completion, including spreading out the problem in small pieces to many different computers, or nodes, in the distributed system for more efficient processing. Hadoop also handles individual node failures, and collects and combines the calculated results from each node.

But you don’t need a collection of hundreds or thousands of computers to run Hadoop. You can learn it, write programs, and do some testing and debugging on a single Linux machine, Windows PC or Mac. The Open Source software can be downloaded here. (Do some research first. You may have use web searches to find detailed installation instructions for your specific system.)

Hadoop is open-source software that is often described as “a Java-based framework for large-scale data processing.” It has a lengthy learning curve that includes getting familiar with Java, if you don’t already know it.

But if you are now ready and eager to take on Hadoop, Packt Publishing recently has unveiled three excellent how-to books that can help you begin and extend your mastery: Hadoop Beginner’s Guide, Hadoop MapReduce Cookbook, and Hadoop Real-World Solutions Cookbook.

Short reviews of each are presented below.

Hadoop Beginner’s Guide
Garry Turkington
(Packt Publishing – paperback, Kindle)

Garry Turkington’s new book is a detailed, well-structured introduction to Hadoop. It covers everything from the software’s three modes–local standalone mode, pseudo-distributed mode, and fully distributed mode–to running basic jobs, developing simple and advanced MapReduce programs, maintaining clusters of computers, and working with Hive, MySQL, and other tools.

“The developer focuses on expressing the transformation between source and result data sets, and the Hadoop framework manages all aspects of job execution, parallelization, and coordination,” the author writes.

He calls this capability “possibly the most important aspect of Hadoop. The platform takes responsibility for every aspect of executing the processing across the data. After the user defines the key criteria for the job, everything else becomes the responsibility of the system.”

The 374-page book is written well and provides numerous code samples and illustrations. But it  has one drawback for some beginners who want to install and  use Hadoop.  Turkington offers step-by-step instructions for how to perform a Linux installation, specifically Ubuntu. However, he refers Windows and Mac users to an Apache site where there is insufficient how-to information. Web searches become necessary to find more installation details.

Hadoop MapReduce Cookbook
Srinath Perera and Thilina Gunarathne
(Packt Publishing – paperback, Kindle)

MapReduce “jobs” are an essential part of  how Hadoop is able to crunch huge chunks of Big Data.  The Hadoop MapReduce Cookbook offers “recipes for analyzing large and complex data sets with Hadoop MapReduce.”

MapReduce is a well-known programming model for processing large sets of data. Typically, MapReduce is used within clusters of computers that are configured to perform distributed computing.

In the “Map” portion of the process, a problem is split into many subtasks that are then assigned by a master computer to individual computers known as nodes. (Nodes also can have sub-nodes). During the “Reduce” part of the task, the master computer gathers up the processed data from the nodes, combines it and outputs a response to the problem that was posed to be solved. (MapReduce libraries are now available for many different computer languages, including Hadoop.)

“Hadoop is the most widely known and widely used implementation of the MapReduce paradigm,” the two authors note.

Their 284-page book initially shows how to run Hadoop in local mode, which “does not start any servers but does all the work within the same JVM [Java Virtual Machine]” on a standalone computer. Then, as you gain more experience with MapReduce and the Hadoop Distributed File System (HDFS), they guide you into using Hadoop in more complex, distributed-computing environments.

Echoing the Hadoop Beginner’s Guide, the authors explain how to install Hadoop on Linux machines only.

Hadoop Real-World Solutions Cookbook
Jonathan R. Owens, Jon Lentz and Brian Femiano
(Packt Publishing – paperback, Kindle)

The Hadoop Real-World Solutions Cookbook assumes you already have some experience with Hadoop. So it jumps straight into helping “developers become more comfortable with, and proficient at solving problems in, the Hadoop space.”

Its goal is to “teach readers how to build solutions using tools such as Apache Hive, Pig, MapReduce, Mahout, Giraph, HDFS, Accumulo, Redis, and Ganglia.”

The 299-page book is packed with code examples and short explanations that help solve specific types of problems. A few randomly selected problem headings:

  • “Using Apache Pig to filter bot traffic from web server logs.”
  • “Using the distributed cache in MapReduce.”
  • “Trim Outliers from the Audioscrobbler dataset using Pig and datafu.” 
  • “Designing a row key to store geographic events in Accumulo.”
  • “Enabling MapReduce jobs to skip bad records.”

The authors use a simple but effective strategy for presenting problems and solutions. First, the problem is clearly described. Then, under a “Getting Ready” heading, they spell out what you need to  solve the problem. That is followed by a “How to do it…” heading where each step is presented and supported by code examples. Then, paragraphs beneath a “How it works…” heading sum up and explain how the problem was solved. Finally, a “There’s more…” heading highlights more explanations and links to additional details.

If you are a Hadoop beginner, consider the first two books reviewed above. If you have some Hadoop experience, you likely can find some useful tips in book number three

Si Dunn

Mac Kung Fu – Kick productivity into higher gear with 400+ tips, tricks – #bookreview

Mac Kung Fu, 2nd Edition
Kier Thomas
(Pragmatic Bookshelf – Paperback, Kindle)

More than a hundred new tips and tricks have been packed into the new edition of Kier Thomas’s popular how-to guide for OS X Mountain Lion.

His book now offers “Over 400 Tips, Tricks, Hints, and Hacks for Apple OS X.” And it includes tips for some of Mountain Lion’s newest tools, including iCloud, Notifications, Reminders, and Calendar.

Kier Thomas has earned his good reputation the hard way, by writing nearly a dozen computer books, as well as blogging professionally for sites such as Macworld and PC World.

Mac Kung Fu, 2nd Edition, is structured so you can simply open it, scan the long list of tips, and pick the ones you want to learn and use next. You can use the book in any order you desire.

For example, maybe you’ve grown tired of the “yellow legal paper” color of the Notes app. There’s no way to change the hue in the Preferences dialog box. But if you follow Thomas’s steps in Tip 132, you can change it to white. And Thomas shows you how to change it back to its default color – just in case you decide to sell your Mac to a lawyer.

Tip 82, “Preview Widgets,” deals with a way around another “feature” that can be irritating. “If you download new Dashboard widgets, you have to install them to your Dashboard before you can run them. This is counterintuitive,” Thomas notes, “because it might transpire that the widget isn’t much use, in which case you have to go through the work of installing it.” With the tips he provides, you can test a widget and simply drag it to Trash if you don’t want to keep it.

OS X does not include a download manager, “a program whose job it is to take care of downloads, including resuming those that stall or fail,” Thomas says. But Tip 173 shows how to use the Terminal window and curl command to efficiently monitor and manage file downloads.

OS X Mountain Lion users likely will find many useful tips and tricks in Kier Thomas’s well-written new book. Just flip it open to the table of contents and start working your way down the long list of new things to try. Or randomly open the book to any page. Either way, you’ll find many new ways to boost your productivity and enhance the pleasures of using OS X Mountain Lion.

Si Dunn

Learning Cocoa with Objective-C – An excellent how-to guide from two experts – #programming #bookreview

Learning Cocoa with Objective-C, 3rd Edition
Paris Buttfield-Addison and Jon Manning
(O’Reilly – paperback, Kindle)

 In some surveys, Objective-C is now the third most popular programming language, up from fifth place in 2011.

O’Reilly recently has published the awaited third edition of Learning Cocoa with Objective-C, with coverage of Xcode 4.2 and iOS 6.

The book’s two authors definitely know the Cocoa framework. They have been developing for it since the Mac first supported it. And their experience and expertise shine forth in this well-written, smoothly organized how-to guide.

They have, they note, “seen the ecosystem of Cocoa and Objective-C development evolve from a small programmer’s niche to one of the most important an d influential development environments in the world.”

Their 339-page, 20-chapter book assumes that you have some programming experience and at least know how to use an OS X and iOS device. Otherwise, it is a solid choice for learning Cocoa with Objective-C from the ground up. It offers clear descriptions and practical exercises, plus numerous code samples, screenshots and other illustrations.

Paris Buttfield-Addison’s and Jon Manning’s bottom-line goal, successfully met here, is to “give you the knowledge, confidence, and appreciation for iOS and OS X development with Cocoa, Cocoa Touch, and Objective-C.”

Si Dunn

Master Your Mac – Useful how-to projects for intermediate users – #bookreview

Master Your Mac
Matt Cone
(No Starch Press, paperbackKindle)

This well-written how-to book will please many new Mac users, as well as many who have been using Macs for years.

But, to fully benefit from this excellent new guide, you must be willing to go beneath the Mac’s easy-to-use OS X surface and work at the command line.

In other words, if you are happy sticking to a regular routine of basics, such as email, Facebook, Twitter , documents and iTunes,  you probably don’t need this book very much.

However, if you are curious about what lies beneath “the obvious applications and documented uses of OS X,” you will find plenty to like in the 400 pages.

The author is offering “a workbook full of advanced projects that push the limits of OS X. You’ll get started with scripting and automation, configure new shortcuts, secure your Mac against invisible threats, and learn how to repair your hard drive.”

 One of the key strengths of this book is its organization. First you are shown how to create “an immediate solution to a real problem.” Then you are given explanations and examples on how to go “above and beyond the project.” For example, “[w]hen you learn AppleScript in Chapter 12…you’ll create your very own script, but you’ll also learn how to incorporate other data structures and interface elements to build a much more advanced script.”

Also, you can tackle the book’s seven parts and 38 chapters in any order that fits your interests and needs. Curious about how to encrypt your hard disk and backups? See Chapter 32. Need to attach multiple monitors to your machine? See Chapter 9. Want to use your Mac as a web server or FTP server? See Chapter 24. Need to create a Bluetooth proximity monitor that automatically locks your screen when you step away from your keyboard? See Chapter 13.

Matt Cone is a well-known and experienced Apple specialist who has been using Macs for more than 20 years. He also is a very good technical writer. His new book is heavily illustrated with steps, screen shots, code samples, and other images. If you are a Macintosh user who wants to get more than just the usual basics from OS X ( including Mountain Lion), Master Your Mac can be your handy go-to guide.

Si Dunn

Programming C# 5.0 – Excellent how-to guide for experienced developers ready to learn C# – #bookreview

Programming C# 5.0
Ian Griffiths
(O’Reilly, paperbackKindle)

Ian Griffiths’ new book is for “experienced developers,” not for beginners hoping to learn the basics of programming while also learning C#. The focus is “Building Windows 8, Web, and Desktop Applications for the .NET 4.5 Framework.”

Earlier editions in the Programming C# series have “explained some basic concepts such as classes, polymorphism, and collections,” Griffiths notes. But C# also keeps growing in power and size, which means the page counts of its how-to manuals must keep growing, too, to cover “everything.”

The paperback version of Programming C# 5.0 weighs in at 861 pages and more than three pounds. So Griffiths’ choice to sharpen the book’s focus is a smart one. Beginners can learn the basics of programming in other books and other ways before digging into this edition. And experienced developers will find that the author’s explanations and code examples now have space to go “into rather more detail” than would have been possible if chapters explaining the basics of programming had been packed in, as well.

If you have done some programming and know a class from an array, this book can be your well-structured guide to learning C#. The “basics” are gone, but you still are shown how to create a “Hello World” program—primarily so you can see how new C# projects are created in Visual Studio, Microsoft’s development environment.

C# has been around since 2000 and “can be used for many kinds of applications, including websites, desktop applications, games, phone apps, and command-line utilities,” Griffiths says.

“The most significant new feature in C# 5.0,” he emphasizes, “is support for asynchronous programming.” He notes that “.NET has always offered asynchronous APIs (i.e., ones that do not wait for the operation they perform to finish before returning). Asynchrony is particularly important with input/output(I/O) operations, which can take a long time and often don’t require any active involvement from the CPU except at the start and end of an operation. Simple, synchronous APIs that do not return until the operation completes can be inefficient. They tie up a thread while waiting, which can cause suboptimal performance in servers, and they’re also unhelpful in client-side code, where they can make a user interface unresponsive.”

In the past, however, “the more efficient and flexible asynchronous APIs” have been “considerably harder to use than their synchronous counterparts. But now,” Griffiths points out, “if an asynchronous API conforms to a certain pattern, you can write C# code that looks almost as simple as the synchronous alternative would.”

If you are an experienced programmer hoping to add C# to your language skills, Ian Griffiths’ new book covers much of what you need to know, including how to use XAML (pronounced “zammel”) “to create  applications of the [touch-screen] style introduced by Windows 8” but also applications for desktop computers and Windows Phone.

Yes, Microsoft created C#, but there are other ways to run it, too, Griffiths adds.

“The open source Mono project ( provides tools for building C# applications that run on Linux, Mac OS X, iOS, and Android.”

Si Dunn

For more information:  paperback – Kindle

Programming Google App Engine, 2nd Edition – An important how-to guide, updated – #programming #bookreview

Programming Google App Engine, 2nd Edition
Dan Sanderson

O’Reilly recently has published a new edition of Dan Sanderson’s Programing Google App Engine.  The new edition updates the 2009 first edition and includes coverage of Java 6 and Python 2.7 support, multithreading, asynchronous service APIs, and using frameworks such as webapp2 and Django 1.3. (“App Engine does not yet support Python 3,” Sanderson notes.)

The 509-page, 20-chapter book shows how “to develop applications that run on Google App Engine, and how to get the most out of the scalable model. A significant portion of the book discusses the App Engine scalable datastore, which does not behave like the relational databases that have been a staple of web development for the past decade,” the author states.

Sanderson is a technical writer and software engineer at Google, Inc. His new edition is well-written and appropriately illustrated with code samples, diagrams, screen shots and other graphics.

With clear steps and good detail, the book shows you first how to install and use the Python or Java SDKs on Mac OS X, Linux, and Windows machines and how to develop simple Python and Java applications. From there, it expands deeper into the how-to aspects of programming the Google App Engine.

In some chapters, the Python and Java options are presented together. Python’s and Java’s data modeling libraries, however, are discussed in separate chapters.

“Google App Engine, Google’s application hosting service, does more than just provide access to hardware,” Sanderson points out.

“It provides a model for building applications that grow automatically. App Engine runs your application so that each user to accesses it gets the same experience as every other user, whether there are dozens of simultaneous users or thousands. The application uses the same large-scale services that power Google’s applications for data storage and retrieval, caching, and network access. App Engine takes care of the tasks of large-scale computing, such as load balancing, data replication, and fault tolerance, automatically.”

Programming Google App Engine, 2nd Edition can take you from asking “What is Google App Engine?” to well down the road toward becoming an App Engine expert.

Si Dunn

For more information: paperbackKindle