Killer UX Design – How to create compelling, user-centered interfaces – #bookreview

Killer UX Design
Jodie Moule
(SitePoint – paperback, Kindle)

The overused term “killer app” tends to kill my curiosity about books with “killer” in the title.

Still,  “killer” title aside, Killer UX Design deserves some attention, particularly if you are struggling to create a better user experience (UX) for products, websites, services, processes, or systems. The eight chapters in this 266-page book provide a well-written “introduction to user experience design.”

The focus, in UX design, is on “understanding the behavior of the eventual users of a product, service, or system. It then seeks to explore the optimal interaction of these elements, in order to design experiences that are memorable, enjoyable, and a little bit ‘wow’,” the author says.

She is a psychologist who co-founded and directs Symplicit, an “experience design consultancy” in Australia. “With the digital and physical worlds merging more than ever before,” she says, “it is vital to understand how technology can enhance the human experience, and not cause frustration or angst at every touchpoint.”

You won’t find JavaScript functions, HTML 5 code, or other programming examples in this book, even though software engineering increasingly is a key factor in UX design. Instead, the tools of choice during initial design phases are: Post-It Notes, index cards, sheets of paper, tape, glue, hand-drawn diagrams and sketches, plus clippings from newspapers, magazines and other materials.

And, you likely will spend time talking with other members of your UX design team, plus potential users of your product, service, or system.

Some of the chapters also deal with prototyping, testing, re-testing and tweaking, and how to modify a design based on what you learn after a product, service, or system has been launched.

A key strength of Killer UX Design is how it  illustrates and explains the real-life — and seldom simple — processes and steps necessary to design an app that is both useful and easy to use.

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

Core Data, 2nd Edition – Updated for OS X Mountain Lion and iOS 6 – #programming #bookreview

Core Data, 2nd Edition
Data Storage and Management for iOS, OS X, and iCloud
Marcus S. Zarra
(Pragmatic Bookshelf – paperback)

“If you plan on writing an application that saves data to disk, then you should take a very long look at Core Data,” urges Marcus S. Zarra, in the new second edition of his Core Data how-to book.

“Core Data,” according to the Mac Developer Library, “provides an infrastructure for change management and for saving objects to and retrieving them from storage.”  It is Apple’s recommended way to persist data. And it is “used daily by millions of customers in a wide variety of applications.”

The new edition of Zarra’s book updates its Core Data development example to an iPhone recipe application (from a desktop recipe application in the first edition). The second edition includes coverage of OS X Mountain Lion and iOS 6 and examines changes to multithreading. The author also has added chapters to explore NSFetchedResultsController and iCloud.

If the structure of some of the book’s code examples appear puzzling, pay special attention to Appendix 2. There, Zarra discusses some of the typographical choices necessary to keep lines of code set to fewer than 80 characters wide. And he shows some macros that he uses in his code to speed up development work.

Whether you are just starting out with Core Data or now an old hand at working with it, you likely can learn new things from this well-written how-to guide. Its author is widely regarded as one of the world’s most experienced Core Data application developers.

Si Dunn

Getting Started with Mule Cloud Connect – To help sort out the chaos of Internet services – #bookreview

Getting Started with Mule Cloud Connect
Ryan Carter
(O’Reilly – paperback, Kindle)

In a digital world increasingly cluttered with Software-as-a-Service (SaaS) platforms, Open APIs, and social networks, complexity quickly can get out of hand.

“It all starts,” Ryan Carter writes in his new book, “with a simple API that publishes somebody’s status to Facebook, sends a Tweet, or updates a contact in Salesforce. As you start to integrate more and more of these external services with your applications, trying to identify the tasks that one might want to perform when you’re surrounded by SOAP, REST, JSON, XML, GETs, PUTs, POSTs, and DELETEs, can be a real challenge.”

Indeed. But never fear, Mule ESB can ride to your rescue and connect you quickly and easily to the cloud. At least, that’s the marketing claim.

Some truly big-name users, it should be noted, are adding credibility to Mule’s claimed capabilities and usefulness as an Open Source integration platform. They include Adobe, eBay, Hewlett-Packard, J.P. Morgan, T-Mobile, Ericsson, Southwest Airlines, and Nestle, to mention just a few.

Meanwhile, riding Mule to the cloud is the central focus of this compact (105 pages), well-written get-started guide. Its author, Ryan Carter, is both a specialist in integration and APIs and “an appointed Mule champion” who contributes regularly to the MuleSoft community.

“Mule,” Carter points out, “is an integration platform that allows developers to connect applications together quickly and easily, enabling them to exchange data regardless of the different technologies that the applications use. It is also at the core of CloudHub, an Integration Platform as a Service(IPaas). CloudHub allows you to integrate cross-cloud services, create new APIs on top of existing data sources, and integrate on-premise applications with cloud services.”

The book is structured so you start off by building a simple Mule application that will serve “as the base of our examples and introduce some core concepts for those unfamiliar with Mule.” Then Carter shows and illustrates how to “start taking advantage of Mule Cloud Connectors.” He includes numerous code examples, plus some screenshots and diagrams.

The book’s six chapters are:

  1. Getting Started
  2. Cloud Connectors
  3. OAuth Connectivity
  4. Configuration Management
  5. Real-Time Connectivity
  6. Custom Connectivity

Carter emphasizes: “Mule Cloud Connect offers a more maintainable way to work with APIs. Built on top of the Mule and CloudHub integration platforms, Cloud Connectors are service-specific clients that abstract away the complexities of transports and protocols. Many complex but common processes such as authorization and session management work without you having to write a single line of code. Although service-specific, Cloud Connectors all share a common and consistent interface to configure typical API tasks such as OAuth, WebHooks, and connection management. They remove the pain from working with multiple, individual client libraries.”

If Mule does not have a connector for a resource that you need, the book shows you how to create your own.

Getting Started with Mule Cloud Connect can get you started on a beneficial ride of  discovery, and it can take you onto the trail that leads to solutions.

— Si Dunn

Outsource It! — The good, bad, and ugly of offshoring tech projects – #bookreview

Outsource It!
A No-Holds-Barred Look at the Good, the Bad, and the Ugly of Offshoring Tech Projects
Nick Krym
(Pragmatic Bookshelf – paperback)

Like it or not, outsourcing tech projects is here to stay. It’s also there to stay, and everywhere else to stay.

There is no clear way that outsourcing will shrivel up and die within the interconnected and increasingly interdependent world economy.

So, perhaps it’s time to stop griping, resisting, and mouthing political slogans–and focus, instead, on finding ways to make the best of offshoring. There are ways to profit from its advantages. And there are ways to minimize the risks from its quirks, management challenges, traps and disadvantages.

Actually, some “offshoring” is “nearshoring.” To help keep development costs down, big corporations in North America sometimes farm out tech work to smaller companies and individual freelancers located in less-expensive areas of the United States, Canada, and Mexico.

“Inshoring” happens, too. U.S. firms move some of their overseas tech operations back to the States, and foreign companies establish some tech outsource operations in the United States, Canada, and Mexico. Their outsourcing is our insourcing.

Outsourcing veteran Nick Krym calls his new book Outsource It! “a down-to-earth guide to offshore outsourcing.” It is aimed, he says, at “technology professionals…working in small- to medium-sized companies or in the technology trenches of large organizations.”

Outsource It! is well-written and packed with good information and how-to steps, plus insights drawn from Krym’s experiences and the experiences of many others in real-world offshoring. His 25 years in the IT industry include 20 years working in offshore outsourcing.

If you work in outsource situations, or if you are helping manage or set up an outsource team, you can glean good information and how-to ideas from Krym’s pages. And, you likely will want to keep the book handy in your reference collection, because he covers many “soft skills that need to be reinforced continuously until they become second nature.”

The 244-page book is divided into five main parts:

  1. Decide If, What, and How to Outsource
  2. Find the Right Vendors
  3. Negotiate Solid Contracts
  4. Lead Distributed Engagements
  5. Keep Risks Under Control

Three appendices take you inside the positives and negatives of outsourcing to India, China, Russia, Central and Eastern Europe, Ireland, Israel, South America, Central America, Mexico, Canada, and the rural United States.

Other appendices offer: an “Outsourcing Readiness Assessment Checklist”; a summary of “Vendor Search Criteria”; an “Outsourcing Checklist”; and an “Offshore Vendor Technical Assessment” process.

As someone who previously worked in multinational software development, on projects involving teams in the U.S., Canada, France, Italy, Sweden and China, I found myself particularly agreeing with Krym’s assessments of software outsourcing.

“Many companies think that QA—software testing—is a logical function to outsource,” he reports. He offers several reasons why this not always “the most prudent approach” and describes what it takes to make offshore QA work.

For example: “The first rule of setting up a productive offshore team,” he stresses,” is to use QA professionals rather than software developer rejects or English major graduates.”

It is likewise vital to find “a solid QA lead—someone who is sufficiently technical, understands the process and requirements, and can manage the team.”

Krym further emphasizes that “[t]he cost difference between local and outsourced QA engineers is not always as dramatic as it is for developers.”

And: “Poor QA management can generate huge amounts of useless work, producing hard-to-manage artifacts and creating unhealthy team dynamics.”

Nick Krym’s new book is an excellent guide to the ins, outs and complex gray areas of outsourcing technology projects. And it’s not just for managers and executives. Employees, freelancers, and leaders of start-ups also can find ways to benefit and profit from the knowledge and experience Outsource It! offers.

Si Dunn