iOS 6 Programming Cookbook – Updated for the new SDK – #iOS #programming #bookreview

iOS 6 Programming Cookbook
Vandad Nahavandipoor
(O’Reilly –
paperback, Kindle)

If you are a new iOS developer, you can learn many things quickly from this hefty book. And even if you are an iOS veteran, you can gain some important new insights.

The iOS 6 cookbook has been completely updated to cover the recently released iOS 6 SDK. And the author is a well-known and well-experienced developer of iOS apps.

The 20-chapter book begins with the basics of programming for the iPhone, iPad, and iPod touch, using Objective-C. But it is not intended for beginners who are just learning to program.

In some forums, debates continue to rage over whether new programmers who want to create iOS apps should dive straight into learning Objective-C or study traditional C first and perhaps other programming languages before tackling Objective-C.

No opinion is offered in this well-written, well-organized book. It is just assumed that “you are comfortable with the iOS development environment and know how to create an app for the iPhone or iPad.”

The book’s  focus, the author says, is on explaining “frameworks and classes that are available in iOS 6 SDK” and teaching the reader “the latest and greatest APIs. As you know, some users of your apps may still be on older versions of iOS, so please consider those users and choose your APIs wisely, depending on the minimum iOS version that you want to target with your apps.”

Here is the chapter line-up for iOS 6 Programming Cookbook:

  1. The Basics
  2. Implementing Controllers and Views
  3. Auto Layout and the Visual Format Language
  4. Constructing and Using Table Views
  5. Storyboards
  6. Concurrency
  7. Core Location and Maps
  8. Implementing Gesture Recognizers
  9. Networking, JSON, XML, and Twitter
  10. Audio and Video
  11. Address Book
  12. Files and Folder Management
  13. Camera and the Photo Library
  14. Multitasking
  15. Core Data
  16. Dates, Calendars, and Events
  17. Graphics and Animations
  18. Core Motion
  19. iCloud
  20. Pass Kit

Vandad Nahavandipoor’s important new iOS 6 cookbook offers hundreds of how-to examples and code samples that can help solve problems and give well-defined starting points and frameworks for developers at all levels of experience.

The topics and code samples range from the basic, such as testing new iOS apps by running them on the iOS simulator, to the advanced, such as using Apple’s Pass Kit to create digitally signed coupons, tickets or passes that can be delivered to compatible iOS devices running iOS 6 or later.

Si Dunn

CompTIA Security+ Exam SY0-301 Rapid Review – For Security+ certification – #bookreview

CompTIA Security+ Exam SY0-301 Rapid Review
Michael Gregg
(Microsoft Press – paperback, Kindle)

IT security professionals know the importance of certifications to their careers and their continuing credibility with employers or potential clients.

The CompTIA Security+ Exam SY0-301 Rapid Review is a handy and helpful guide for IT security specialists who are preparing for Exam SY0-301, to earn a CompTIA vendor-neutral Security+ certification

Important note: This book is for certification candidates who are already well-versed in their field. It is specifically “designed to assess your readiness for the SY-301 exam,” the author notes. “It is not designed as a comprehensive exam preparation guide.”

If you want to begin studying for Exam SY0-301, you are urged to start with the CompTIA Security+ Training Kit, which is scheduled for release in 2013.

The Rapid Review and the SY0-301 exam are aimed at IT professionals who have “a minimum of two years of experience in IT administration with a focus on security.”

Also, exam candidates should have “[d]ay-to-day technical information security experience” and “[b]road knowledge of security concerns and implementation.”

Like the exam, the Rapid Review focuses on six areas: (1) network security; (2) compliance and operational security; (3) threats and vulnerabilities; (4) application, data and host security; (5) access control and identity management; and (6) cryptography.

Along with definitions and explanations, the Rapid Review challenges the reader with numerous true-false questions and “Can you answer these questions?” queries. The true-false answers and their explanations are presented immediately after the true-false questions. Meanwhile, the answers to the “Can you answer these questions?” queries are presented at the end of each chapter—and you have to do a bit more work and reviewing to sort them out.

Si Dunn

MapReduce Design Patterns – For solving Big Data problems – #bookreview #programming #hadoop

MapReduce Design Patterns
Donald Miner and Adam Shook
(O’Reilly –
paperback, Kindle)

“MapReduce is a computing paradigm for processing data that resides on hundreds of computers,” the authors point out. It has been “popularized recently by Google, Hadoop, and many others.”

The MapReduce paradigm is “extraordinarily powerful, but does not provide a general solution to what many are calling ‘big data,” they add, “so while it works particularly well on some problems, some are more challenging.” The authors’ focus in their new book is on using MapReduce design patterns as “templates or general guides to solving problems.”

Their new book definitely can help solve some time-crunch problems for new MapReduce developers. It brings together a variety of solutions that have emerged over time in a patchwork of blogs, books, and research papers and explains them in detail, with code samples, illustrations, and cautions about potential pitfalls.

You can’t simply cut and paste solutions from the chapters. But the two writers do “hope that you will find a pattern to get you at least 90% of the way for just about all of your challenges.”

Six of the book’s eight chapters focus on specific types of design patterns:

  • Summarization Patterns
  • Filtering Patterns
  • Data Organization Patterns
  • Join Patterns
  • Metapatterns
  • Input and Output Patterns

“The MapReduce world is in a state similar to the object-oriented world before 1994,” the authors point out. “Patterns today are scattered across blogs, websites such as StackOverflow, deep inside other books, and inside very advanced technology teams at organizations across the world.”

They add that “[t]he intent of this book is not to provide some groundbreaking new ways to solve problems with MapReduce….” but to offer, instead, a collection of “patterns that have been developed by veterans in the field so they can be shared with everyone else.”

The book’s code samples are all written in Hadoop, and the two writers deal with the question of “why should we use Java MapReduce in Hadoop at all when we have options like Pig and Hive,” which reduce the need for MapReduce patterns.

There is “conceptual value,” they state, “in understanding the lower level workings of a system like MapReduce.” Furthermore, “Using Pig or Hive without understanding MapReduce can lead to some dangerous situations.” And, Pig and Hive cannot yet “tackle all of the problems in the ways that Java MapReduce can. This will surely change over time….”

If you are new to MapReduce, this useful and informative book from Donald Miner and Adam Shook can be the next best thing to having MapReduce experts at your side.

MapReduce Design Patterns can save you time and effort, steer you away from dead ends, and help give you solid understandings of the powerful MapReduce paradigm.

Si Dunn

Python for Kids – A fun & efficient how-to book that even grownups can enjoy – #programming #bookreview

Python for Kids
Jason R. Briggs
(No Starch Press – paperback, Kindle)

Subtitled “A Playful Introduction to Programming,” Python for Kids is recommended “for kids aged 10+ (and their parents).”

But what if your kids are grown or you don’t have any kids? Should you ignore this book while learning Python? Absolutely not.

I’ve recently taken two Python 3 classes, and I wish I had had many of the explanations and illustrations in Python for Kids available to help me grasp some of the concepts. I’m keeping this book handy on my shelf for quick reference, right next to works such as Head First Python and Think Python.

Yeah, it contains plenty of silliness for kids, such as a wizard’s shopping list that includes “bear burp” and “slug butter,” and using if and elif statements to create jokes such as “What did the green grape say to the blue grape? Breathe! Breathe!” (I have grandchildren who consider this stuff uproariously funny.)

But Python for Kids also covers a lot of serious topics in its 316 pages and shows—simply and clearly—how to handle many major and minor aspects of the Python programming language. NOTE: This book is for the newer 3.X versions of Python, not older 2.X versions that are still in use and still a focus of some books for beginners.

One Python class I took didn’t introduce tuples until the 7th week of lectures. Python for Kids, however, has the reader using tuples on page 38, right after six pages of learning how to work with strings and lists. And the explanations and examples for these elements are clearer than what I got in a college-level course. (Of course, it helps when exercises involve “bear burp” and “gorilla belly-button lint” rather than boring generics such as “Mary has 3 oranges” and “Jack has 6 pencils.”)

Jason R. Brigg’s new book also shows how to draw shapes and patterns and create simple games and animations—topics not covered in some other beginning Python books I have used.

Another cool feature of this excellent how-to book is an afterword titled “Where to Go from Here.” It provides suggestions and gives links for those who want to learn more about games and graphics programming or take up other programming languages such as Ruby, PHP or JavaScript.

Bottom line, Python for Kids offers education and entertainment for children, their parents, and almost anyone else serious about having some fun while learning Python 3.

Si Dunn

Make: Volume 32 – Zany and practical projects and articles for DIY builders – #bookreview

Make: Volume 32
(O’Reilly, paperback)

Make: is a science, technology, and do-it-yourself (DIY) projects magazine published quarterly in paperback book format. Volume 32 not only has intriguing articles about private rocketeers, flying motorcycles, and human-size replicas of videogame costumes and weapons. It also has about two dozen “complete plans” for a wide array of useful and zany projects.

One of the projects in Volume 32 is “The Awesome Button,” a big red desktop button that you can hit when you can’t think of a synonym for the totally overused word “awesome” while you’re composing email or a letter or a manuscript. The project uses a $16 Teensy USB Development Board made by PJRC, plus some downloaded code. When your fist hammers down on the big red button, the board generates random synonyms for “awesome” and sends them to your computer so you can quickly accept or reject them in your document.

Another project is a catapult launcher that will send a tiny balsa wood glider zooming 150 feet into the air. Beats the heck out of a rubber band looped around a Popsicle stick.

And another DIY article focuses on the joys of salvaging perfectly good electronic and mechanical parts from discarded laser printers, so you can use the parts in other projects.

Make: Volume 33 is due to appear in January. In the meantime, Volume 32 is full of fun reading and intriguing projects, such as how to transform data files into synthesized music.

Si Dunn

iOS SDK Development – A totally new and improved 2nd edition – #programming #bookreview

iOS SDK Development
Chris Adamson and Bill Dudney
(Pragmatic Bookshelf, paperback)

The previous, 2009 edition of this popular how-to book was titled iPhone SDK Development.  But this  new and re-titled second edition is much more than a copy-and-paste, just-make-some-tweaks update.

“[W]e have copied absolutely nothing from the old book,” the authors say. “As we looked at all the changes to the platform—between Xcode 4, iOS 6, and the iPad—we decided that so much had changed that we would be better off starting fresh.”

While they tried to cover virtually everything in their previous book, their new, 274-page edition is much more focused and, yes, it’s more pragmatic.

“This book,” they state, “is about setting you off on the right foot: understanding the fundamentals, getting comfortable with the tools and the concepts, and developing good habits. We’ve put a particular emphasis on the last of these, looking for the kinds of things that aren’t just handy classes or compiler tricks but instead are the values and routines that will help produce better apps. We’re also adopting modern iOS development practices, such as using Objective-C properties exclusively instead of using traditional instance variables and getting private methods out of public header files.”

Two other goals: They want iOS SDK Development “to serve as a prerequisite” for Pragmatic Bookshelf’s other iOS titles; and they hope you will “come away from this book with a firm grasp of the most essential iOS APIs—the UIKit GUI framework and the essential utilities of the Foundation framework—and enough of a sense of where things are and how things work to be able to grab the documentation for interesting looking features and be able to figure it out.”

The book has 10 chapters, with illustrations and short code examples. The chapters are:

  1. Tweetings and Welcome to iOS 6 – Shows how to download and install the SDK and begin working on a first app.
  2. Programming for iOS –Introduces Objective-C and “the two frameworks we use most often in iOS apps: Foundation and UIKit.”
  3. Asynchronicity and Concurrency – Shows “how many of the iOS APIs use asynchronous callbacks and [employ] the Grand Central Dispatch system to handle concurrent execution….”
  4. View Controllers – “…looks at how iOS apps are built on a strong Model-View-Controller (MVC) foundation.”
  5. Table Views – Deals with “the flexible and widely used table view, the linchpin of most iPhone apps that need to present lists of data.
  6. Storyboards and Container Controllers – Covers “how to build a visual road map of the many screens of an app and how to build much of the logic of that navigation and presentation automatically.”
  7. Documents and iCloud – Shows the tools needed “to save our user’s work to the filesystem as well as to Apple’s new iCloud service.”
  8. Drawing and Animating – Explains how to use the Core Graphics framework and Core Animation.
  9. Testing and Fixing Apps – Looks at what can go wrong and how to use the SDK’s tools to fix things.
  10. The App Store and Beyond – Focuses on moving from learning to doing, by maintaining code, running it on devices, submitting it on the App Store, and “managing it after it’s in users’ hands.”

Whether you want to learn how to develop iPhone, iPad, and iPod Touch apps, or improve and update your knowledge of the necessary processes, you should read the new, improved iOS SDK Development and keep it within easy reach.

Si Dunn

Go APE (Author, Publisher, Entrepreneur) with Guy Kawasaki & Shawn Welch – #bookreview #amwriting

APE: Author, Publisher, Entrepreneur—How to Publish a Book
Guy Kawasaki and Shawn Welch
(Nononina Press,
Kindle)

Okay, confession time. I know a bit about the book business—what used to be the book business.

Years ago, I was a freelance developmental book editor for a trio of well-known publishing houses; I’ve had a couple of book agents; books I wrote have been put into print by not-so-major publishers (and later dropped out of print); I’ve written hundreds of book reviews; and I’ve self-published a few books and ebooks: nonfiction, fiction and poetry.

To misquote the late actor-comedian W.C. Fields, on the whole, I’d rather be in self-publishing now.  There isn’t much of an alternative.

And not just basic self-publishing but artisanal self-publishing, which Guy Kawasaki and Shawn Welch define, in their well-written and well-designed new book, as “a new, cool form of publishing…authors lovingly crafting their books with total control over the process.”

Many writers, of course, already are trying to do that, often with abysmal results, because it’s not enough to commit a book to print (or its digital equivalent) and then wait for the world to recognize your genius and surge forward to buy it on Amazon.

To succeed in self-publishing, you really do have to be, as Kawasaki and Welch contend, an APE: an author, a publisher, and an entrepreneur. 

With APE, Kawasaki and Welch aim to “help people take control of their writing careers by publishing their books. The thesis of APE is simple but powerful: When a self-publisher successfully fills three roles—author, publisher and entrepreneur—the potential benefits are greater than with traditional publishing.”

There’s plenty of truth in that. Three publishers turned down my Vietnam War memoir Dark Signals, even after it received a prestigious award. And several other publishers did not bother to respond to my queries. So I published it myself as a CreateSpace paperback and Kindle ebook, both available through Amazon.

It has not been a runaway best-seller; I knew from the outset that I was writing for a limited audience: readers of military memoirs. Yet several hundred copies have been ordered thus far. And a book that I really needed to push out of my soul finally is out there for posterity, with five-star reviews.

No doubt I could have sold more copies at the outset if I had had APE in hand. Knowing the traditional book business is one thing. Knowing the new ways of book creation and marketing are quite another.   

Filling the three roles — author, publisher and entrepreneur — is “challenging, but they are not impossible—especially if people who have done it before explain it to you.” That’s the key premise behind APE. Kawasaki, a successful author, has become a successful self-publisher with help from Shawn Welch, and together, they are now offering up their hard-earned secrets in a 300-page book that many authors will want to read, repeatedly.

Indeed, many of us likely will value APE as a Chicago Manual of Style for self-publishing that also has entertaining writing and dozens of how-to tips thrown in for added value. APE is comprehensive. And it’s very realistic about what it takes to succeed as a self-published author.

Three points in particular stand out for me.

  1. Yes, I have been a professional editor and proofreader of books. But I still should never do the final edits and proofreading of my own text. (Neither should you.) “The self-edited author is as foolish as the self-medicated patient,” Guy Kawasaki points out. Indeed, I have had to create new editions of at least two of my ebooks, because I found glaring typos that I had completely overlooked while doing my “final” edits. As Kawasaki notes: “The going rate for copyediting is $35 per hour, and copyeditors can work their magic at the rate of roughly ten pages per hour (although this can vary depending on the complexity of the material), so you’ll pay approximately $1,000–$1,500 for a three-hundred-page manuscript. This is one of the dumbest places to try to save money, because poor copyediting destroys the quality of your book.” (Unfortunately, you will have to sell a lot of ebooks to cover that cost.)
  2. At least two of my CreateSpace books have boring covers. I am not a graphic artist, and I should not attempt to save money in the future by “designing” my own book covers or settling for one of the available “standard” covers. As Kawasaki notes: “Not to get too metaphysical, but a cover is a window into the soul of your book. In one quick glance, it needs to tell the story of your book and attract people to want to read it. Unless you’re a professional, hire a professional to create a great cover because, in spite of how the old saying goes, you can judge a book by its cover. Or at very least, people will judge a book by its cover.”
  3. While I have dabbled at business for many years, I am not much of an entrepreneur. And I don’t have the soul of a self-promoting guerilla marketer. I grew up believing modesty is a virtue. (Or, perhaps I merely had that notion spanked into my britches when I was an Eisenhower-era kid.) In any case, when my first books were published, others hired by the publishers did the editing, bragging, selling and distribution. Sometimes I talked to small groups of people and signed a few autographs. But mostly, I just stayed home, started a new project, and waited for the (small) checks to arrive. Now, in APE’s chapter on “How to Build an Enchanting Personal Brand,” Kawasaki states: “Call me idealistic, but your platform is only as good as your reality. If you suck as a person, your platform will suck too.” Cool. Memo to self: Improve personal enchantment platform immediately. (By the way, Guy and Shawn, I would add a comma between “suck” and “too.” You’re welcome.) Seriously, if we self-publish books, we have to sell ourselves to readers, right along with, and often ahead of, our books. And the eight chapters of APE’s “Entrepreneur” section provide excellent guidelines on how to do that.

Even if you already know a lot about self-publishing and self-marketing books, if you’ll go APE, you can learn some profitable new tricks from Guy Kawasaki and Shawn Welch.

Si Dunn

Natural Language Annotation for Machine Learning – #programming #bookreview

Natural Language Annotation for Machine Learning
James Pustejovsky and Amber Stubbs
(O’Reilly, paperbackKindle)

You may not be sure what’s going on here, at first, even after you’ve read the tag line on the book’s cover: “A Guide to Corpus-Building for Applications.

Fortunately, a few definitions inside this book can enlighten you quickly and might even get you interested in delving deeper into natural language processing and computational linguistics as a career.

“A natural language,” the authors note,” refers to any language spoken by humans, either currently (e.g., English, Chinese, Spanish) or in the past (e.g., Latin, ancient Greek, Sanskrit). Annotation refers to the process of adding metadata information to the text in order to augment a computer’s ability to perform Natural Language Processing (NLP).”

Meanwhile: “Machine learning refers to the area of computer science focusing on the development and implementation of systems that improve as they encounter more data.”

And, finally, what is a corpus? “A corpus,” the authors explain, “is a collection of machine-readable texts that have been produced in a natural communicative setting. They have been sampled to be representative and balanced with respect to particular factors; for example, by genre—newspaper articles, literary fiction, spoken speech, blogs and diaries, and legal documents.”

The Internet is delivering vast amounts of information in many different formats to researchers in the fields of theoretical and computational linguistics. And, in turn, specialists are now working to develop new insights and algorithms “and turn them into functioning, high-performance programs that can impact the ways we interact with computers using language.”

This book’s central focus is on learning how an efficient annotation development cycle works and how you can use such a cycle to add metadata to a training corpus that helps machine-language algorithms work more effectively.

Natural Language Annotation for Machine Learning is not light reading. But it is well structured, well written and offers detailed examples. Using an effective hands-on approach, it takes the reader from annotation specifications and designs to the use of annotations in machine-language algorithms. And the final two chapters of the 326-page book “give a complete walkthrough of a single annotation project and how it was recreated with machine learning and rule-based algorithms.”

“[I]t is not enough,” the authors emphasize, “to simply provide a computer with a large amount of data and expect it to learn to speak—the data has to be prepared in such a way that the computer can more easily find patterns and inferences. This is usually done by adding relevant metadata to a dataset. Any metadata tag used to mark up elements of the dataset is called an annotation over the input. However,” they point out, “in order for the algorithms to learn efficiently and effectively, the annotation done on the data must be accurate, and relevant to the task the machine is being asked to perform. For this reason, the discipline of language annotation is a critical link in developing intelligent human language technology.”

Si Dunn

HTML5 and JavaScript Web Apps – With emphasis on the Mobile Web – #programming #bookreview

HTML5 and JavaScript Web Apps
Wesley Hales
(O’Reilly,
paperbackKindle)

Increasingly, the world of Web development is taking on a “mobile first” attitude. And for good reason. Sales of desktop and laptop computers are shrinking, while sales of mobile devices seem to be swelling into a flood.

“Consumers are on track to buy one billion HTML5-capable mobile devices in 2013,” Wesley Hales writes in his new book. “Today, half of US adults own smartphones. This comprises 150 million people, and 28% of those consider mobile their primary way of accessing the Web. The ground swell of support for HTML5 applications over native ones is here, and today’s developers are flipping their priorities to put mobile development first.”

Hales’ HTML5 and JavaScript Web Apps focuses on using HTML5, JavaScript, and the latest W3C specifications to create mobile and desktop web apps that can work on a wide range of browsers and devices.

Indeed, deciding what to support is a key point in this useful, well-focused how-to guide. Hales notes: “Unfortunately the Mobile Web isn’t write-once-run-anywhere yet. As specifications become final and features are implemented, interoperability will be achieved. In today’s world of mobile browsers, however, we don’t have a largely consistent implementation across all browsers. Even though new tablets and phones are constantly being released to achieve a consistent level of HTML5 implementation, we all know that we’re [also] stuck with supporting the older, fragmented devices for a set amount of time.”

The 156-page book straddles “the gap between the Web and the Mobile Web” but puts a lot of emphasis on developing mobile applications. Here are its nine chapters:

  1. Client-Side Architecture
  2. The Mobile Web
  3. Building for the Mobile Web
  4. The Desktop Web
  5. WebSockets
  6. Optimizing with Web Storage
  7. Geolocation
  8. Device Orientation API
  9. Web Workers

This is not a book for JavaScript, HTML, or CSS beginners. But if you have at least some basic experience with Web application development, Hales can help you get on track toward becoming a Mobile Web guru. Meanwhile, if you are already well-versed in the ways of the Web app world, you may still learn some new and useful things from HTML5 and JavaScript Web Apps.

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