Switching to the Mac, Mountain Lion Edition – David Pogue scores again – #bookreview

Switching to the Mac: Mountain Lion Edition
David Pogue
(O’Reilly, paperbackKindle)

David Pogue will have to pry Windows PCs out of my cold, dead fingers.

That being said, his new book makes a very compelling case for why you other Windows users should switch from PCs to Macs right away.

As I’ve previously noted, I use three battle-scarred Windows PCs during a typical work day. Yet sometimes (don’t ask why), I am forced – forced, I tell you – to use my wife’s Macintosh, too.

Frankly, I have hated Macs for a long, long time. No, actually, I have hated the smug, “Everything’s milk and honey on a Mac!” attitude that peppy-preppy Mac users (my wife excluded) seem to radiate each time they get around us gray-haired Windows types.

I happen to think the Blue Screen of Death is a lovely work of art, easily on par with Thomas Gainsborough’s The Blue Boy and Edvard Munch’s The Scream, thank you very much. And what is life without the daily excitement of battling evil spyware and sinister viruses from Eastern Europe?

Seriously, I continue to be a huge fan of New York Times tech columnist David Pogue and “The Missing Manual” book series he created. I use several of O’Reilly’s “Missing” manuals on a regular basis.

His new book has convinced me that, okay, maybe it finally might be time to replace one of my combat-scarred PCs with a shiny new Mac. Then I, too, can radiate some of that lustrous “Everything’s sunshine and bunnies!” glow instead of merely gnashing my teeth at the need to download a new patch or service pack.

“OS X has a spectacular reputation for stability and security,” Pogue assures readers. “At this writing, there hasn’t been a single widespread OS X virus—a spectacular feature that makes Windows look like a waste of time.” (David, David, David. “Waste of time”? Tsk, tsk.)

If you are contemplating making the switch or have already switched from Windows to Mac – one that’s running OS X (Mountain Lion) – you need this book. It is well written and nicely illustrated, and it has a strong focus on helping Windows users feel comfortably at home on a new Mac.

“Be glad you waited so long to get a Mac,” Pogue writes in a chapter titled “Special Software, Special Problems.”

“By now, all the big-name programs look and work almost exactly the same on the Mac as they do on the PC.”

You will encounter situations where a favorite Windows program is not available in a Mac equivalent. But there usually are Mac equivalents that offer similar functions. Or, you often can run Windows programs on an OS X Mac in Windows format, Pogue points out.

He also shows how to transfer documents and other files from Windows machines to Macs. Usually, the transfers go smoothly. “It turns out that communicating with a Windows PC is one of the Mac’s most polished talents,” Pogue notes. Sometimes, there are problems, of course, even in “infallible” Mac Land. But Pogue’s huge book (743 pages) gives clear procedures or suggestions for dealing with most of them. And: “Most big-name programs are sold in both Mac and Windows flavors, and the documents they create are freely interchangeable.”

Switching to the Mac: Mountain Lion Edition is organized into five parts:

  • Part 1, Welcome to the Macintosh – Covers the differences between what you see on a Macintosh screen and a Windows screen. Pogue notes that “OS X offers roughly the same features as Windows. That’s the good news. The bad news is that these features are called different things and parked in different spots.”
  • Part 2, Making the Move – Covers how to move software, data and peripherals such as printers and scanners from a Windows PC to a Mac. Includes steps for running Windows on Macs, using Apple Boot Camp. “The only downsides: Your laptop battery life isn’t as good, and you have to restart the Mac again to return to the familiar world of OS X.”
  • Part 3, Making Connections – Shows how to set up web, iCloud, and email connections on a Mac and use Apple’s Internet software suite.
  • Part 4, Putting Down Roots – Covers user accounts, parental controls, security, networking, file sharing, screen sharing, system preferences, and OS X’s “freebie” programs, such as Calendar, Photo Booth, and QuickTime Player.
  • Part 5…(Hello? Why is Part 5 missing from the table of contents and the pages of the printed version?)
  • Part 6, Appendixes – Two of the four appendixes cover installing OS X Mountain Lion and troubleshooting. The third appendix is “The Windows-to-Mac Dictionary,” especially useful for Windows people who have to use a Macintosh once in a while. “It’s an alphabetical listing of every common Windows function and where to find it in OS X,” Pogue says. And the fourth appendix offers a “master keyboard-shortcut list for the entire Mac OS X universe.”

Switching to the Mac, Mountain Lion Edition offers sound reasons (1) why you may prefer to stick with certain Windows for Mac programs on your new Mac and (2) why you may want to abandon certain Windows programs written for Macs and learn to use the Mac programs that are, in Pogue’s estimation, “better.”

You won’t be alone if you become (as I likely will) a user who moves back and forth between Mac world and Windows world, for a long time if not “forever.” In that case, you’ll definitely want Switching to the Mac: Mountain Lion Edition on your reference shelf.

The Connected Company – Restructure now or die in today’s hyperconnected economy – #bookreview

The Connected Company
Dave Gray, with Thomas Vander Wal
(O’Reilly,
hardbackKindle)

If you buy only one business management book this year, make it this one. It’s that good, and definitely timely.

Whether your organization chart stretches across continents or consists of just you, your smart phone and your computer, you can learn important insights and paths for new action from Dave Gray’s and Thomas Vander Wal’s well-written book.

“Competitive intensity is rising all over the world,” they emphasize. “Global competition and the Web have given customers more choices than they have ever had before. This means that customers can choose from an ever-widening set of choices, and it seems that variety only breeds more variety. The more choices that become available, the more choices it seems that people want.”

At the same time, like it or not: “The balance of power is shifting from companies to the networks that surround them. Connected, communicating customers and employees have more choices, and more amplified voices, than ever before. They have more knowledge than ever before. These trends are only increasing with time. This means the network—customers, partners, and employees—will increasingly set the agenda, determine the parameters, and make the decisions about how they interact with companies.”

And: “By changing the way we create, access, and share information, social networks are changing the power structure in society.”

Today, one negative tweet, blog post, or video that goes viral can wreak havoc within a company (or political campaign), disrupt careers, damage or destroy expensive advertising campaigns, and turn potential and existing customers away in droves.

In an economy increasingly service-driven, your factory-model training and mentality is now completely obsolete. You must be connected, you must stay engaged with customers and the rest of the world, and you must be able to respond to rumors and actual bad news as quickly and completely as you respond to orders from your best customers.

The Connected Company is organized into five parts that clearly spell out the problems and the achievable solutions.

  • Part One: Why change? – “Customers are adopting disruptive technologies faster than companies can adapt.” And: “Customers are connecting, forming networked communities that allow them to rapidly share information and self-organize into powerful interest groups.” To survive, you have to be more responsive to what they need and increasingly have the power to demand.
  • Part Two: What is a connected company? – “To adapt companies must operate not as machines but as learning organisms, purposefully interacting with their environment and continuously improving, based on experiments and feedback.”
    Part Three: How does a connected company work? – “A connected company learns and adapts by distributing control to the points of interaction with customers, where semi-autonomous pods pursue a common purpose supported by platforms that help them organize and coordinate their activities.”
  • Part Four: How do you lead a connected company? – “Connected companies are living, learning networks that live within larger networks. Power in networks comes from awareness and influence, not control. Leaders must create an environment of clarity, trust, and shared purpose, while management focuses on designing and tuning the system that supports learning and performance.”
  • Part Five: How do you get there from here? – “Connected companies today are the exception, not the rule. But as long as the environment is characterized by change and uncertainty, connected companies will have the advantage. There are four ways your company can start that journey today….”

The traditional hierarchy model of business structure still works when your markets remain stable. But when is the last time, lately, that that actually has happened? Companies divided into functions increasingly go awry in times of uncertainty, because those individual departments cannot adapt, change, and respond quickly enough. In the world of The Connected Company, “companies must organize differently. They must reorganize from hierarchies into holarchies, where every part can function as a whole unto itself.”

Gray and Vander Wal stress: “A connected company is flexible and resilient, able to adapt quickly to change. The path from divided to connected company is not simple or easy. But in an increasingly volatile world, it is also not optional.”

Fortunately, their book lays out some clear strategies and procedures, as well as imperatives,  for getting there.

Si Dunn

Head First HTML and CSS, 2nd Edition – An effective and entertaining guide now updated for HTML5 – #bookreview

Head First HTML and CSS, 2nd Edition
Elisabeth Robson and Eric Freeman
(O’Reilly,
paperback)

As a techie, I am admittedly a bit mediocre. I do know most of the critical differences between a couch and CouchDB. But I don’t speak fluent JavaScript or Klingon. I seldom eat regular expressions for breakfast. And I never brush my teeth with JSON or even SQLite.

In other words, I have to look up stuff in books, mess around with code examples, and try to puzzle out why I just wrote a function that completely blew up when I called it.

The clearer the how-to instructions and code examples, the better for my time-battered brain.

So, here is no surprise: I love the “Head First” series from O’Reilly. Its books introduce topics in amusing, easy-to-handle bites (and bytes) that are well illustrated and presented in orderly progressions. Typically, you create a simple project and spend the rest of the text learning how to add functions or features to it and improve its appearance and overall usability.

When I am in a mood to play for a few minutes or an hour or so, I enjoy opening a “Head First” volume. I can quickly teach my old-dog-self new tricks by working through a few of the examples and lighthearted explanations.

First published in 2005, Head First HTML and CSS has now been updated to cover HTML5. If you are a newcomer wanting to work with web pages or expand some basic web-page knowledge, Elisabeth Robson’s and Eric Freeman’s new 2nd edition is an excellent guide. It shows, step by step, how to create standards-based web pages using HTML5 and cascading style sheets (CSS).

Do not be intimidated by the book’s size (723 pages) and heft (nearly four pounds).  It will get you off to a fast start learning basic Hyper Text Markup Language (HTML). Then it introduces each new topic in small steps, with plenty of screenshots, diagrams, notes, tips, exercises, and Q&A sessions to help you stay on track.

Here is how the book is organized:

  1. The Language of the Web: getting to know html
  2. Meet the “HT” in HTML: going further, with hypertext
  3. Web Page Construction: building blocks
  4. A Trip to Webville: getting connected
  5. Meeting the Media: adding images to your pages
  6. Serious HTML: standards and all that jazz
  7. Adding a Little Style: getting started with CSS
  8. Expanding your Vocabulary: styling with fonts and colors
  9. Getting Intimate with Elements: the box model
  10. Advanced Web Construction: divs and spans
  11. Arranging Elements: layout and positioning
  12. Modern HTML: html5 markup
  13. Getting Tabular: tables and more lists
  14. Getting Interactive: html forms

The authors introduce basic HTML before taking you into HTML5. And they deliberately advocate “a clean separation between the structure of your pages and the presentation of your pages.” They teach you “to use HTML for structure and CSS for style….” They also show you how to test your web pages using more than one browser, so you can learn how to create pages “that work well in a variety of them.”

They do not try to cover everything in their “brain-friendly guide.”  They offer Head First HTML and CSS, 2nd Edition as “a learning experience, not a reference book.” (The book’s appendix, by the way, is titled “The Top Ten Topics (We Didn’t Cover): leftovers.” It focuses on more things you might want to consider and try.)

Once the authors have tossed you in head first and helped you develop a reasonably good feel for HTML5 and CSS, then you can go look for the fancy stuff.

You will have better notions of what to do with it once you have it.

Si Dunn

Learning JavaScript Design Patterns – For better JavaScript and jQuery coding – #programming #bookreview

Learning JavaScript Design Patterns
Addy Osmani
(O’Reilly, paperbackKindle)

New to JavaScript and jQuery or looking to expand your skills? This well-focused how-to guide can help you learn how to recognize and apply reusable design patterns to your coding.

“A pattern is a reusable solution that can be applied to commonly occurring problems in software design—in our case, in writing JavaScript web applications,” Addy Osmani notes in his new book. He is a developer programs engineer on the Chrome team at Google, and he is a frequent contributor to publications such as JavaScript Weekly.

“Another way of looking at patterns is as templates for how we solve problems—ones that can be used in quite a few different situations,” Osmani adds.

In his view, design patterns offer three key benefits for JavaScript and jQuery developers. First, the patterns offer “proven solutions….They provide solid approaches to solving issues in software development using proven techniques….” created and tested by others. Second, design patterns “can be easily reused” and offer “an out-of-the-box solution that can be adapted to suit our own needs.” And, third, “patterns can be expressive…there’s generally a set structure and vocabulary to the solution presented that can help express rather large solutions quite eloquently.”

Osmani also emphasizes that patterns do not provide “exact solutions…the role of a pattern is merely to provide us with a solution scheme.” But a key goal of his book is to convince JavaScript and jQuery  developers that “[r]eusing patterns assists in preventing minor issues that can cause major problems in the application development process.”

Learning JavaScript Design Patterns (235 pages) is structured with 14 chapters and an appendix.

  1. Introduction
  2. What Is a Pattern?
  3. “Pattern”-ity Testing, Proto-Patterns, and the Rule of Three
  4. The Structure of a Design Pattern
  5. Writing Design Patterns
  6. Anti-Patterns
  7. Categories of Design Patterns
  8. Design Pattern Categorization
  9. JavaScript Design Patterns
  10. JavaScript MV* Patterns
  11. Modern Modular JavaScript Design Patterns
  12. Design Patterns in jQuery
  13. jQuery Plug-in Design Patterns
  14. Conclusions

The appendix, “References,” includes 39 links for additional information related to JavaScript design patterns.

The author offers numerous code samples and graphics to help illustrate his explanations. He provides looks at more than 20 “classical and modern” design patterns in JavaScript. And he explains several choices for writing modular code, including the Module pattern, Asynchronous Module Definition (AMD), and CommonJS.

He also describes design patterns available within the jQuery library and explores “a number of jQuery plug-in patterns that have worked well for other developers in the wild.”

Addy Osmani’s well-written book provides clear guidance to understanding how adapting and using existing design patterns can help software developers work more efficiently and effectively in JavaScript and jQuery.

Si Dunn

Shipping Greatness – How to build and launch outstanding software – #bookreview #projectmanagement

Shipping Greatness
Chris Vander Mey
(O’Reilly, paperbackKindle)

The subtitle of this excellent new book deserves its own paragraph, so here it is:

“Practical lessons on building and launching outstanding software, learned on the job at Google and Amazon.”

Back when I worked in software development, we never shipped “greatness,” nor anything that resembled “outstanding.” We shipped software that was overdue, incomplete, and inadequately tested. Then we followed up, always in panic mode, with patches, dot releases, and releases that had multiple dots.

Everyone – from our customers to our sales force, managers, and finance department— hated us. (Indeed, more than once, I was a tech-writer minion in a software-development group that was thrown out an employer’s door en masse.)

Anyone who works in software development today or manages software development teams should consider reading Chris Vander Mey’s spirited and eye-opening project management guide.

“Shipping,” he writes, “is about meeting customer needs well and quickly, in addition to becoming rich and famous. Your mission, therefore, is to solve a customer problem. Your strategy is your unique approach to meeting a need that a group of people—a market segment—shares. It sounds pretty simple, and it is, in theory.”

In reality, of course, it is also fraught with crises, gotchas, unwanted surprises, management squabbles, and corporate-wide earthquakes, to name just a few distractions.

With this book, his goal is to get you beyond management theory and into the rapid, real-life flow of software creation and shipping, with the skills and knowledge necessary to both survive and thrive.

Shipping Greatness is organized into two parts and contains a total of 215 pages, 13 chapters and three appendices.

Part One: The Shipping Greatness Process

  • 1. How to Build a Great Mission and Strategy
  • 2. How to Define a Great Product
  • 3. How to Build a Great User Experience
  • 4. How to Achieve Project Management Greatness on a Budget
  • 5. How to Do a Great Job Testing
  • 6. How to Measure Greatness
  • 7. How to Have a Great Launch

Part Two: The Shipping Greatness Skills

  • 8. How to Build a Shipping-Ready Team
  • 9. How to Build Great, Shippable Technology
  • 10. How to Be a Great Shipping Communicator
  • 11. How to Make Great Decisions
  • 12. How to Stay a Great Person While Shipping
  • 13. That Was Great; Let’s Do It Again

The three appendices are: Appendix A – 10 Principals of Shipping; Appendix B – Essential Artifacts Your Team Needs; and Appendix C – References and Further Reading.

Chris Vander Rey’s new book offers a wealth of how-to discussions, techniques to consider, and tips to adopt. One of my favorite small bits of advice is: Never have a launch party during a software launch. “It’s really demoralizing when your team members can’t go to their own party,” he says. Instead, many of them likely will be hunched in their cubicles monitoring server traffic or watching for user problems with the release.

You can’t get a degree (yet) in this kind of shipping. But Shipping Greatness is the textbook that can help you graduate to greatness in the ever-changing, ever-challenging world of software.

Si Dunn

Practical Computer Vision with SimpleCV – ‘Seeing’ with Python – #programming #bookreview

Practical Computer Vision with SimpleCV
Kurt Demaagd, Anthony Oliver, Nathan Oostendorp, and Katherine Scott
(O’Reilly, paperbackKindle)

SimpleCV, or Simple Computer Vision, is “an easy-to-use Python framework that bundles together open source computer vision libraries and algorithms for solving problems,” according to the authors of this useful and informative how-to book.

The subtitle is “Making Computers See in Python,” and the codes examples require Python 2.7.

Why learn computer vision? “As cameras are becoming standard PC hardware and a required feature of mobile devices, computer vision is moving from a niche tool to an increasingly common tool for a diverse range of applications,” the authors note.

Indeed, cameras and computer vision now are being used in everything from facial recognition systems and video games to automobile safety, industrial automation, medicine, planetary exploration, and even agriculture.

“The SimpleCV framework has compiled installers for Windows, Mac, and Ubuntu Linux, but it can be used on any system on which Python and OpenCV can be built,” the authors state.

Practical Computer Vision with SimpleCV shows how to use the framework and simple application examples to get started toward building your own computer vision applications. The 240-page book has 10 chapters:

  • Introduction
  • Getting to Know the SimpleCV Framework
  • Image Sources
  • Pixels and Images
  • The Impact of Light
  • Image Arithmetic
  • Drawing on Images
  • Basic Feature Detection
  • FeatureSet Manipulation
  • Advanced Features (focuses on optical flow)

The book also has three appendices: Advanced Shell Tips, Cameras and Lenses; and Advanced Features (deals with advanced segmentation and feature extraction tools).

Practical Computer Vision with SimpleCV provides a good overview of computer vision basics and shows, using simple but effective examples, how you can put them to work.

Si Dunn

Regular Expressions Cookbook, 2nd Edition – Seek, find, fix–in 8 programming languages – #bookreview

Regular Expressions Cookbook, 2nd Edition
Jan Goyvaerts and Steven Levithan
(O’Reilly, paperbackKindle)

Recently revised and updated, this new edition of the Regular Expressions Cookbook offers “detailed solutions” for using regular expressions in eight popular programming languages: C#, Java, JavaScript, Perl, PHP, Python, Ruby, and VB.NET.

A regular expression basically is a pattern that describes a certain amount of text. And: “Regular expressions are a powerful tool,” the two authors note. “If your job involves manipulating or extracting text on a computer, a firm grasp of regular expressions will save you plenty of overtime.”

Programmers and non-programmers alike can use regular expressions “for information retrieval and alteration tasks,” and no prior experience is required to use the first two chapters of this book. Chapters 1 and 2 explain major concepts, basic skills, and many of the available regex software tools that non-programmers can use to work with regular expressions.

For programmers, Chapters 3 through 9 focus on using the book’s eight supported programming languages to implement and work with regular expressions. And there are numerous code examples.

The Regular Expressions Cookbook is well-written and well-illustrated, and it delivers more than 140 “recipes” that show how to apply regular expression concepts and tools to real-world problems.

One Cookbook example: “You want to catch addresses that contain a P.O. box, and warn users that their shipping information must contain a street address.”

Another example: “You want to find URLs in a large body of text. URLs may or may not be enclosed in punctuation that is part of the larger body of text rather than part of the URL. You want to correctly match URLs that include pairs of parentheses as part of the URL, without matching parentheses placed around the entire URL.”

The Regular Expressions Cookbook explains why there are now many different “flavors” of regular expressions. And, while some programming languages “have their own, built-in regular expression flavor….[other] programming languages rely on libraries for regex support.” The authors emphasize: “For this book , we selected the most popular regex flavors in use today.”

Si Dunn