Three new specialized how-to books for SharePoint, JQuery & Mac OS X Lion Server – #bookreview #in #programming

Here are three new books for those with at least some basic to intermediate experience with Microsoft SharePoint, or web development, or Mac OS X Lion.

Microsoft SharePoint 2010: Creating and Implementing Real-World Projects
By Jennifer Mason, Christian Buckley, Brian T. Jackett, and Wes Preston
(Microsoft Press,
paperback, list price $34.99; Kindle edition, list price $27.99)

If you have some background in Microsoft SharePoint and want to dig deeper, this book can help you learn how to use SharePoint to create real-world solutions to ten common business problems.

Each chapter is devoted to a single project, such as creating a FAQ system to help users quickly find answers to their questions, setting up a help desk solution to track service requests, or building a simple project management system.

The projects are based on “various scenarios encountered by the authors as we have used SharePoint as a tool to build solutions that address business needs….Each of the solutions has been implemented in one or more organization,” they state.

Do not jump into Microsoft SharePoint 2010: Creating and Implementing Real-World Projects until you have gained “a general understanding of the basics of SharePoint,” the authors caution. And note that SharePoint is not easily defined as one “type” of product.

If you keep in mind the process of building a house, they write, “SharePoint is like the various tools and materials, and the final business solutions you build are like the house. There are many features and tools in SharePoint, and within this book, you will see different ways to combine and structure them into business solutions.”

Their 403-page book is well written and cleanly organized with short paragraphs and many headings, step lists and illustrations. It also has an extensive index.

#

JQuery: Novice to Ninja, 2nd Edition
By Earle Castledine and Craig Sharkie
(SitePoint,
paperback, list price $39.95; Kindle edition, list price $29.95)

Technology changes fast, and web developers curious about JQuery will welcome this updated edition of Earle Castledine’s and Craig Sharkie’s book that first appeared in 2010.

This also is not a book for beginners. “You should,” the authors note, “already have intermediate to advanced HTML and CSS skills, as JQuery uses CSS-style selectors to zero in on page elements. Some rudimentary programming knowledge will be helpful to have,” they add, “as JQuery—despite its clever abstractions—is still based on JavaScript.” 

The authors offer high praise for the power of JQuery: “Aside from being a joy to use, one of the biggest benefits of JQuery is that it handles a lot of infuriating cross-browser issues for you. Anyone who has written serious JavaScript in the past can attest that cross-browser inconsistencies will drive you mad.”

They describe how to download and include the latest version of JQuery in web pages. And their book is organized to introduce JQuery features and code examples while also showing you, step by step, how to build a complete working application.

JQuery: Novice to Ninja, 2nd Edition has plenty of illustrations and is well indexed and written in a friendly, approachable style. 

#

Using Mac OS X Lion Server
By Charles Edge
(O’Reilly,
paperback, list price $29.99; Kindle edition, list price $23.99)

Yes, intermediate and advanced system administrators will find some useful information in this well-written and nicely illustrated guide.

“But the book,” says author Charles Edge, “is really meant for new system administrators: the owner of the small business, the busy parent trying to manage all of those iPhone and iPads the kids are running around with, the teacher with a classroom full of iMacs or iPads, and of course, the new podcaster, just looking for a place to host countless hours of talking about the topic of her choice.”

What Using Mac OS X Lion Server  does not cover is “managing a Lion Server from the command line, scripting client management, or other advanced topics.”

The topics it does cover include: Planning for and installing a server; sharing and backing up files; sharing address books, calendars, and iChat; Wikis, webs and blogs; building a mail server; building a podcasting server; managing Apple computers and iOS devices; network services; and deploying Mac OS X computers.

The author cautions: “In many ways, the traditional system administrator will find Lion challenging in its consumeristic approach. There is a lot of power under the hood, but the tools used to manage the server have been simplified so that anyone can manage it, not just veteran Unix gods.”

#

Si Dunn is a novelist, screenwriter, freelance book reviewer, and former software technical writer and software/hardware QA test specialist. He also is a former newspaper and magazine photojournalist. His latest book is Dark Signals, a Vietnam War memoir. He is the author of an e-book detective novel, Erwin’s Law, now also available in paperback, plus a novella, Jump, and several other books and short stories.

Oh, say can you C? Learning to program with Head First C – #bookreview #in #programming

Head First C
By David Griffiths and Dawn Griffiths
(O’Reilly,
paperback, list price $49.99)

 Long ago, in a universe now very far away, I was an ABC programmer: assembler, BASIC, and C. I learned C from a book popularly known as “K&R,” after its authors, Brian W. Kernighan and Dennis M. Ritchie. (Their classic work is now available in an updated second edition.)

But I had no mentors, so I struggled to figure out and apply many of the basic concepts that were not quite spelled out clearly enough or illustrated well enough for me in K&R.

I really wish I had had a book like Head First C, instead. My geeky logical side often is ruled and frequently overruled by my unstructured, illogical artistic side.

For learners like me, O’Reilly’s “Head First” series makes effective and entertaining use of graphics. It also addresses readers with a conversational style that avoids lecturing. And it focuses on trying to make sure you understand and can apply each new element.

Thus, Head First C does not try to be a complete C language reference guide. It shows you how to work with C’s major concepts, and you begin using them right away, so you can start understanding the process of becoming an effective C programmer. After that, if you are motivated to continue, you can push on into other books that do attempt to be complete C reference texts.

This “brain friendly guide” shows how to download free C compilers for Linux, Macintosh, and Windows machines. And, the authors assure: “All the code in this book is intended to run across all these operating systems, and we’ve tried hard not to write anything that will only work on one type of computer.”

Another positive for this book: You don’t have to key in or wade through dozens of lines of code to get to the few lines you are really supposed to be studying. “Most examples in this book are shown within the smallest possible context, so that the part you’re trying to learn is clear and simple.”

And, the book has been given a thorough technical review. So the code examples that are intended to work generally will work.

The book’s 12 chapters focus on the following topics:

  1. Getting Started with C
  2. Memory and Pointers
  3. Strings
  4. Creating Small Tools
  5. Using Multiple Source Files
  6. Structs, Unions, and Bitfields
  7. Data Structures and Dynamic Memory
  8. Advanced Functions
  9. Static and Dynamic Libraries
  10. Processes and System Calls
  11. Interprocess Communication
  12. Sockets and Networking
  13. Threads

About midway through the book, you are presented with your first lab exercise. You write some C code and hook up a few hardware components to create an Arduino-powered plant monitor that lights up an LED and repeatedly sends the string “Feed me!” to your screen if a plant needs to be watered.

In the book’s second lab exercise, you write C code that lets your computer and its web cam act as an intruder detector. You do this with help from OpenCV, “an open source computer vision library. It allows you to take input from your computer camera, process it, and analyze real-time image data and make decisions based on what your computer sees.”

In the third and final lab exercise, you use your new C skills to write a video game called “Blasteroids,” with help from the Allegro open source game development library.

Head First C is a first and foremost a very good book for beginners, especially those who have at least a little bit of programming experience. But it delves into some advanced-level topics, too, such as multithreading and network programming.

If learning C is your goal, Head First C can help you stay focused, stay entertained and happily soak up the things you need to know.

#

Si Dunn is a novelist, screenwriter, freelance book reviewer, and former software technical writer and software/hardware QA test specialist. He also is a former newspaper and magazine photojournalist. His latest book is Dark Signals, a Vietnam War memoir. He is the author of an e-book detective novel, Erwin’s Law, now also available in paperback, plus a novella, Jump, and several other books and short stories.

Machine Learning for Hackers – Analyzing & displaying data using R – #bookreview #in #programming

Machine Learning for Hackers
By Drew Conway and John Myles White
(O’Reilly,
paperback, list price $39.99; Kindle edition, list price $31.99)

The word “hacker has a very bad reputation in many parts of the computer world.

This book’s two authors, however, offer a different and much more positive view. “Far from the stylized depictions of nefarious teenagers or Gibsonian cyber-punks portrayed in pop culture, “they write, “we believe a hacker is someone who likes to solve problems and experiment with new technologies.”

In their view: “If you’ve ever sat down with the latest O’Reilly book on a new computer language and knuckled out coded until you were well past ‘Hello, World,’ then you’re a hacker. “ You’re also a hacker, in their view, “if you’ve dismantled a new gadget until you understood the entire machinery’s architecture….”

As for machine learning, they define it “[a]t the highest level of abstraction…as a set of tools and methods that attempt to infer patterns and extract insight from a record of the observable world.” In more concrete terms, machine learning “blends concepts and techniques from many different traditional fields, such as mathematics, statistics, and computer science.” At the computer programming level, machine learning is defined as “a toolkit of algorithms that enables computers to train themselves to automate useful tasks.”

Conway’s and White’s new book, Machine Learning for Hackers, is rich with challenges for experienced programmers who love to crunch data. Its code examples use the R programming language, a “software environment for statistical computing and graphics.” It can be downloaded free for Windows, MacOS, or a variety of UNIX platforms from The R Project for Statistical Computing.

What you don’t get in this book is an R language tutorial. Instead of “Hello, World!” in the introductory chapter, you jump straight into working with a very interesting data set and generating histograms dealing with distributions of UFO sightings.

It is assumed that you have done some programming, and the authors note that you can find basic R tutorials online or in other books.

With a case-studies approach, each chapter of the 303-page book focuses on a particular problem in machine learning, and the authors show how to analyze sample databases and create simple machine learning algorithms.

The chapters are:

  1. Using R
  2. Data Exploration
  3. Classification: Spam Filtering
  4. Ranking: Priority Inbox
  5. Regression: Predicting Page Views
  6. Regularization: Text Regression
  7. Optimization: Breaking Codes
  8. PCA [principal components analysis]: Building a Market Index
  9. MDS [multidimensional scaling]: Visually Exploring US Senator Similarity
  10. kNN [The k-Nearest Neighbors algorithm]: Recommended Systems
  11. Analyzing Social Graphs
  12. Model Comparison

Some of the other projects the authors present include: using linear progression to predict the number of page views for 1,000 top websites; doing statistical comparisons and contrasts of U.S. Senators based on their voting records; and building “a ‘who to follow’ recommendation engine” for Twitter that doesn’t violate Twitter’s terms of service or its API’s “strict rate limit.”

Conway and White offer some fairly heady and challenging learning experiences for those who would like to work with pattern recognition algorithms and big piles of data.

“The notion of observing data, learning from it, and then automating some process of recognition is at the heart of machine learning,” the authors note, “forms the primary arc of this book.”

#

Si Dunn is a novelist, screenwriter, freelance book reviewer, and former software technical writer and software/hardware QA test specialist. He also is a former newspaper and magazine photojournalist. His latest book is Dark Signals, a Vietnam War memoir. He is the author of an e-book detective novel, Erwin’s Law, now also available in paperback, plus a novella, Jump, and several other books and short stories.

 

Switching to the Mac: The Missing Manual, Lion Edition – #bookreview #in #mac #windows

Switching to the Mac: The Missing Manual, Lion Edition
By David Pogue
(O’Reilly,
paperback, list price $29.99; Kindle edition, list price $23.99)

I own and use three Windows PCs during a typical day. But sometimes (don’t ask why), I find myself forced – forced – to use my wife’s Macintosh.

Grrrr. Where do I click? Where are the other mouse buttons? And what do these geeky, alien icons actually mean?

Frankly, I’ve hated Macs for a long, long time. And I’ve especially hated the smug, “Everything’s simpler on a Mac!” attitude that peppy Mac users seem to radiate whenever they are around us gray-haired Windows types who  have been messing with command prompts, anti-virus software, and the Blue Screen of Death since (seemingly) the War of 1812.

That being said, I am a big 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 frequent basis.

Pogue’s new book is now proving useful for me as a sort of Klingon-to-English translation guide when I am forced – forced –to use my beloved’s dearly beloved Mac.

But in all seriousness, if you are contemplating making the switch or have already switched from Windows to Mac (traitor!), you need this book. It is a well-written, nicely illustrated user’s guide with a strong focus on how to transfer documents and other files from Windows machines to Macs. Often, 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, however, the transfers do not go well. Pogue’s huge book (691 pages) also points out some potential pitfalls and remedies, such as possibly losing “memorized transactions, customized report designs, and reconciliations” when transferring from QuickBooks for Windows to QuickBooks to Mac.

Switching to the Mac is organized into five parts:

  • Part 1, Welcome to the Macintosh – Covers the essentials of “everything you see onscreen when you turn on the machine.”
  • Part 2, Making the Move – Covers “the actual process of hauling your software, settings, and even peripherals (like printers and monitors) across the chasm from the PC to the Mac.” Includes steps for running Windows on Macs, “an extremely attractive option.”
  • Part 3, Making Connections – Shows how to set up an Internet connection on a Mac and use Apple’s Internet software suite.
  • Part 4, Putting Down Roots – Gets into more advanced topics “to turn you into a Macintosh power user.”
  • Part 5, Appendixes – Two of the four appendixes cover installation and troubleshooting. One is the “Where’d It Go?” Dictionary for those trying to find familiar Windows controls “in the new, alien Macintosh environment.” And the fourth appendix offers “a master keyboard-shortcut list for the entire Mac OS X universe.”  

Switching to the Mac 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 better than, say, PowerPoint or Notepad, for example.

If you happen to be addicted to Microsoft Access and Microsoft Visio, you have a separate choice. You can either switch to FileMaker and OmniGraffle or keep a Windows machine sitting close to your new Mac.

You won’t be alone as a user caught between two different worlds. Writes Pogue: “A huge percentage of ‘switchers’ do not, in fact, switch.  Often, they just add.  They may get a Macintosh (and get into the Macintosh), but they keep the old Windows PC around, at least for a while.”

In my case, you’ll have to pry the Windows keyboard and mouse from my cold, dead fingers. But I’ll keep this hefty book with me, to use both as a how-to guide and as a bludgeon, each time I have to go into the Macintosh wilds and battle the Lion.

# 

Si Dunn is a novelist, screenwriter, freelance book reviewer, and former software technical writer and software/hardware QA test specialist. He also is a former newspaper and magazine photojournalist. His latest book is Dark Signals, a Vietnam War memoir available now in paperback. He is the author of a detective novel, Erwin’s Law, a novella, Jump, and several other books and short stories.

 

Node for Front-End Developers – Writing server-side JavaScript applications – #bookreview #in

Node for Front-End Developers
By Garann Means
(O’Reilly, paperback, list price $14.99; Kindle edition, list price $7.99)

Node is a JavaScript platform used to create server-side applications, communicate with the client, work with data, create dynamic web pages, and handle other tasks.

According to the Joyent Incorporated’s nodejs website: “Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.”

Node’s library has many modules created by developers who have focused on automating server-side development. But Garann Means’ new, 45-page book shows how you can get started programming for back-end servers using Node and JavaScript.  

Node.js is easy to download.  And, according to Node for Front-End Developers: “Node is easy to set up or very easy to set up. Node runs on Unix-compatible systems and, more recently, Windows.”

The how-to-get-started instructions, however, are a bit sparse in this thin book, and virtually nonexistent for Windows. Beginners who don’t have much experience with JavaScript may puzzle over a number of basic “What now?” and “WTF?” issues. 

Sparse information for Node beginners, however, is not limited to Node for Front-End Developers. I checked several other sources of  Node documentation and found similar problems. You’re just supposed to know this stuff, I guess. 

As one example, I followed the book’s instructions to create Node’s important package.json file, then discovered that what I had downloaded from Nodejs already contained a package.json file. In fact, it was now in several subdirectories. Was I supposed to edit it, instead? Delete it and replace it with my file? Had I just screwed up the installation by creating my own file?

After a lot of horsing around with node and npm at the command line and getting strange results at the not-quite “Hello World” level, I happened across a small note on the GitHub.com website. It stated that Node’s “Windows builds are not yet satisfactorily stable but it is possible to get something running.”

Especially if you resort to package managers to help you out.  And maybe get assistance from a Node guru. [See UPDATE below.]

Yes, I was indeed attempting a Windows setup, and I did get Node to partially work. But after several tries at reinstalling, rebooting, debugging, and attempting to supplement the book with conflicting bits of  information downloaded from the web, I gave up having “fun” with Node. (UPDATE: Recently, I reviewed my command line procedures a bit, looked again at my files and subdirectory structure and tried again. This time, Node works fine at the “Hello, World” level and beyond. I stand by my criticism that this book’s how-to-get-started instructions should be made clearer for Windows users. But I am at fault, too, for not figuring out what I was doing wrong much sooner.)  

Your results likely will be much better than mine, especially if you have more than novice experience with JavaScript.  and are using something other than (and better than?) a Windows machine. 

As for Node for Front-End Developers, the rest of the book appears to be an easy-to-use guide to getting a basic understanding of the Node platform. The code examples look good and are preceded by well-written explanations. I have now tested some of them successfully and plan to try a few of the longer, more-complex examples soon. wish I could have tested more of them. But I intend to keep this book and try Node again once easier and more stable Windows options are available.

The book’s chapters are:

  • Chapter 1, Getting Node Set Up
  • Chapter 2, Serving Simple Content
  • Chapter 3, Interaction with the Client
  • Chapter 4, Server-Side Templates
  • Chapter 5, Data Sources and Flow Control
  • Chapter 6, Model-View-Controller and Sharing Code

How-to-get-started instructions are vital in any programming and developer’s book, in my view. And they need careful preparation and presentation for every major operating system that is supported.

Countless beginners are looking for new programming and development paths and challenges, and many of them will buy books that are beyond their experience level so they can try to learn faster and backfill as they go. Most of them also won’t have the latest-and-greatest hardware and software. Therefore, minimum requirements need to be spelled out clearly, as well.

Don’t let my blunderings with Windows dissuade you from considering this book. Node has been hot, and if you have JavaScript experience at the browser level, Node for Front-End Developers can help you learn how to work on back-end servers, too.

It pays to be versatile in today’s fast-paced tech world.

But yeah, I probably do need a Mac and a Linux machine flanking my Windows PC.

#

Si Dunn is a novelist, screenwriter, freelance book reviewer, and former software technical writer and software/hardware QA test specialist. His latest book is Dark Signals, a Vietnam War memoir available soon in paperback. He also is the author of a detective novel, Erwin’s Law, a novella, Jump, and several other books and short stories.

iOS 5 Programming Cookbook: Solutions & Examples for iPhone, iPad, & iPod Apps – #bookreview

iOS 5 Programming Cookbook
By Vandad Nahavandipoor
(O’Reilly, paperback, list price $49.99; Kindle edition, list price $39.99)

This huge and helpful “cookbook” does not ignore iOS novice programmers. But the author, a veteran software developer, expects readers to at least be “comfortable with the iOS development environment and know how to create an app for the iPhone or iPad.”

His well-structured new edition “presents useful ways to get things done” and promises that readers “will learn a lot more about the basics of iOS programming, and a lot more about UIKit, dictionaries, arrays, loops, and conditionals.”

He notes that “[a] lot has changed in iPhone, iPad, and iPod touch programming since the introduction of iOS 5. The whole runtime and the way we write Objective-C code has dramatically changed. ARC (Automatic Reference Counting) is now introduced into the LLVM Compiler, which in some ways gives us more flexibility and in other ways makes the runtime more fragile.”

Nahavandipoor’s 852-page book is loaded with code examples, screenshots, and other illustrations and is divided into 17 chapters and an index.

  • Chapter 1: The Basics - An overview of  Objective-C.
  • Chapter 2: Implementing Controllers and Views - “Describes various approaches to constructing your iOS application’s user interface…”
  • Chapter 3: Constructing and Using Table Views - Shows how to use table views “to create professional-looking iOS applications.”
  • Chapter 4: Storyboards - The process of storyboarding can help you “define the connections between different screens in your app.” And, with storyboarding, “you don’t have to know anything about iOS programming to get a simple app running.”
  • Chapter 5: Concurrency - Focuses on Grand Central Dispatch, “Apple’s preferred way of achieving concurrency in iOS.” Also looks at timers, threads, and operations.
  • Chapter 6: Core Location and Maps - Describes “how you should use Map Kit and Core Location APIs to develop location-aware iOS applications.”
  • Chapter 7: Implementing Gesture Recognizers - Shows “how to use all available gesture recognizers in the iOS SDK, with working examples tested on iOS 5 on different devices such as the iPhone 3GS, iPhone 4, and iPad.”
  • Chapter 8: Networking, JSON, XML, and Twitter - Includes downloading data from a URL and parsing XML files. The pros and cons of synchronous and asynchronous connections. Caching files in memory and on disk to minimize an iOS device’s bandwidth consumption.
  • Chapter 9: Audio and Video - Focuses on “the AV Foundation and Media Player frameworks that are available on the iOS SDK.”
  • Chapter 10: Address Book – Structured to help Objective-C developers get a handle on the Address Book framework and how to retrieve contacts, groups, and their information. “The Address Book framework is composed entirely of C APIs.” So, “many Objective-C developers find it difficult to use this framework….”
  • Chapter 11: Camera and the Photo Library - Shows how to “determine the availability of front- and back-facing cameras on an iOS device.” Also looks at accessing the Photo Library “using the Assets Library framework…available in iOS 4 and later” and editing videos on an iOS device.
  • Chapter 12: Multitasking - Explains and presents examples that show “how to create multitasking-aware aplications that run beautifully on iOS 4 and above.”
  • Chapter 13: Core Data - Using Core Data to “maintain persistent storage for your iOS applications….”
  • Chapter 14: Dates, Calendars, and Events - Shows how to use “the event Kit and Event Kit UI frameworks, which are available on iOS 4 and later, in order to manage calendars and events on an iOS device.”
  • Chapter 15: Graphics and Animations – Introduces the reader to the Core Graphics framework and shows how to work with images and text and graphics context.
  • Chapter 16: Core Motion - Introduces the Core Motion framework and shows how to access the accelerometer and gyroscope on an iOS device. (Not all devices have those capabilities.)
  • Chapter 17: iCloud - “Shows how to use the iCloud service, which ties devices together and allows them to share data…as the user moves from one device to another.”

More than 100 new recipes have been added to this updated second edition of Nahavandipoor’s book. He also provides extensive references and links to other materials, including some Apple documents that he believes “every professional iOS developer should read.”

#

Si Dunn is a novelist, screenwriter, freelance book reviewer, and former software technical writer and software/hardware QA test specialist. His latest book is a detective novel, Erwin’s Law. His other published works include Jump, a novella, and a book of poetry, plus several short stories, including The 7th Mars Cavalry, all available on Kindle.

A Bug Hunter’s Diary: A Guided Tour through the Wilds of Software Security – #programming #bookreview

A Bug Hunter’s Diary: A Guided Tour through the Wilds of Software Security
By Tobias Klein
(No Starch Press, paperback, list price $39.95; Kindle edition, list price $31.95)

If your passion or desire is to find and kill software bugs and fight hackers, you should check out this well-written how-to book.

Tobias Klein, an information security specialist, has tracked down many difficult bugs and identified security vulnerabilities in some of the world’s best-known software, including Apple’s iOS, the Mac OS X kernel, web browsers, and the VLC media player, among others.

Using a diary approach, plus code examples and illustrations, Klein describes a bug he has just discovered in a software package. Then he illustrates how it creates a security vulnerability that a hacker could exploit, and he describes how to fix or at least reduce its risks.

Chapters 2 through 8 each focus on separate bugs, and Klein includes a list of “lessons learned” for programmers who want to avoid creating similar problems.

Klein’s well-illustrated book is organized as follows:

  • Chapter 1: Bug Hunting – (a brief overview.)
  • Chapter 2: Back to the ‘90s - (shows how he discovered a bug and vulnerability in a Tivo movie file that allowed him to crash a VLC media player and gain control of the instruction pointer.)
  • Chapter 3: Escape from the WWW Zone – (illustrates how and where he found a bug in the Solaris kernel and the “exciting challenge” of demonstrating how it could be exploited for arbitrary code execution.)
  • Chapter 4: Null Pointer FTW – (describes “a really beautiful bug” that opened a vulnerability into “the FFmpeg multimedia library that is used by many popular software projects, including Google Chrome, VLC media player, MPlayer, and Xine to name just a few.”)
  • Chapter 5: Browse and You’re Owned – (discusses how he found an exploitable bug in an ActiveX control for Internet Explorer.)
  • Chapter 6: One Kernel to Rule Them All – (focuses on how he decided to search for bugs in some third-party Microsoft Windows drivers and found one in an antivirus software package.)
  • Chapter 7: A Bug Older than 4.4BSD – (how he found an exploitable bug in the XNU kernel OS X.)
  • Chapter 8: The Ringtone Massacre – (how he found an exploitable bug in an early version of the iPhone’s MobileSafari browser that enabled him to modify ringtone files and access the program counter.)
  • Appendix A: Hints for Hunting – (“…some vulnerability classes, exploitation techniques, and common issues that can lead to bugs.”)
  • Appendix B: Debugging – (about debuggers and the debugging process.)
  • Appendix C: Mitigation – (discusses mitigation techniques.)

Tobias Klein is the author of two previous information security books that were published in Germany. Because hackers use many of the same tools as those seeking to keep them out, there is an important limit on how much detail Klein is able to impart in this book.

As he notes in a disclaimer: “The goal of this book is to teach readers how to identify, protect against, and mitigate software security vulnerabilities. Understanding the techniques used to find and exploit vulnerabilities is necessary to thoroughly grasp the underlying problems and appropriate mitigation techniques. Since 2007, it is no longer legal to create or distribute “hacking tools” in Germany, my home country. Therefore, to comply with the law, no full working exploit code is provided in this book. The examples simply show the steps used to gain control of the execution flow (the instruction pointer or program counter control) of a vulnerable program.”

Si Dunn

A gift for the programmer who has everything? The Art of Readable Code – #programming #bookreview

The Art of Readable Code: Simple and Practical Techniques for Writing Better Code
By Dustin Boswell and Trevor Foucher
(O’Reilly, paperback, list price $34.99; Kindle edition, list price, $27.99)

The software world is full of bad code.

Code that was badly written; code that has been reworked — badly — by dozens of undisciplined programmers; code written in haste to patch or hide a problem; code written without comments that can help you decipher what the previous programmer was thinking — or not thinking; code written by people like me, who didn’t know much at all about programming but had to produce some emergency code anyway, because the real programmers were away on vacation.

The Art of Readable Code could be a very useful book to give the programmer in your life — whether he or she is new to computer programming or an open-minded mid-career professional looking to make some improvements in how they work.

The book focuses on “basic principles and practical techniques” that programmers can apply each time they begin a new coding project or find themselves patching an old one.

The authors present what they call their “Fundamental Theorem of Readability.” In their view: “Code should be written to minimize the time it would take for someone else to understand it.”

For example, “smaller” may not always be better. A one-line expression may be more understandable to other programmers if it is broken into two lines of code.

The 190-page book illustrates its concepts with examples of code from several different programming languages, including C++, Python, JavaScript, and Java. The authors add: “We’ve avoided any advanced language features, so even if you don’t know all these languages, it should still be easy to follow along. (In our experience, the concepts of readability are mostly language-independent, anyhow.)”

The Art of Readable Code has 15 chapters and an appendix and is structured in four parts:

  • Part 1: Surface Level  Improvements – (Naming, commenting and aesthetics that can be applied to every line of code)
  • Part 2: Simplifying Loops and Logic – (Refining loops, logic, and variables so they are easier to understand)
  • Part 3: Reorganizing Your Code – (Higher-level ways to organize large blocks of code and go after problems at the function level)
  • Part 4: Selected Topics – (Applying “easy to understand” to software testing and to a larger data structure coding example)

The authors state: “It’s a valuable skill to be able to explain an idea ‘in plain English….The same skill should be used when ‘presenting’ code to your reader. We take the view that source code is the primary way to explain what a program is doing. So the code should be written ‘in plain English.’”

The book itself is smoothly written and nicely illustrated, not only with cartoons but with some very clear code examples that can be quickly applied.

Si Dunn

Mac Attack! Three new books for Macintosh users – #bookreview

No Starch Press and O’Reilly Media recently have released three new books aimed at Macintosh users.

One is for Mac newcomers. Another is for those who want to learn a lot more about the Mac OS X Lion operating system without having to read “tersely written” Apple help screens. And the third is for programmers who want “to build native Mac OS X applications with a sleek, developer-friendly  alternative to Objective-C….”

Taking it easy first…

Doing ‘Simple Projects’ with a Mac

My New Mac Lion Edition: Simple Projects to Get You Started
By Wallace Wang
(No Starch Press, paperback, list price $29.95 ; Kindle edition, list price $9.99)

If you are computer newbie or switching over from Windows or other operating systems, here is a good book to help you put your new Mac to work in a hurry.

My New Mac Lion Edition shows how to do practical stuff such as connecting to the Web, playing and burning CDs and DVDs, pulling digital photos off your camera so you can edit and share them, and working with the Mac’s security features.

Given today’s risky Internet and office computing environment, it might have been better to describe the security features much earlier in the book, well before the working-online chapters. But as a practical guide to learning and using the Mac’s key features, this 472-page how-to guide is written well and has plenty of illustrations and clear lists of steps. It even describes several ways to eject a stuck CD or DVD.

The 56 chapters are grouped into seven parts:

  • Part 1: Basic Training – Everything from using the mouse to opening apps.
  • Part 2: Wrangling Files and Folders – Finding files, storing files, sharing files.
  • Part 3: Making Life Easier – Shortcut commands, controls, updating software, saving and retrieving contact information, using appointment calendar, and typing in foreign languages.
  • Part 4: Playing Music and Movies - Playing audio CDs, ripping and burning audio CDs, playing a DVD, listening to online programs and free college lectures, and editing videos with iMovie.
  • Part 5: The Digital Shutterbug – Transferring, editing and displaying digital photographs.
  • Part 6: Surfing and Sharing on the Internet – Numerous things web and email, plus instant messaging with iChat.
  • Part 7: Maintaining Your Mac – Energy conservation, ejecting stuck CDs/DVDs, password protecting  your Mac, encrypting your data, and configuring your firewall.

The author, Wallace Wang, has written several best-selling computer books. He’s also an ongoing career as a standup comic.

More IS Better: What to Do with 50+ Programs and 250 New Features

Mac OS X Lion: The Missing Manual
By David Pogue
(O’Reilly, paperback, list price $34.99)

David Pogue created the popular Missing Manual series, and the New York Times technology columnist definitely knows how to put together a good how-to book.

His 909-page Mac OS X Lion: The Missing Manual is exactly what you need to become (over time and with diligent effort, of course) a Mac power user. It’s also what you need if you’d rather settle for being a well-informed user who likes having a handy source  for looking up information about a Mac feature or program.

In this book, you begin well beneath the “Hello, World!” level by learning to say “oh-ess-ten,” not “oh-ess-ex.” Once you master that, you get to move into “The New Lion Landscape,” where you are informed that “Apple’s overarching design philosophy in creating Mac OS X was: ‘Make it more like an iPad.’”

Then, you quickly learn how to use “Full Screen Mode, Safari” and “Full Screen Apps, Mission Control.” And, by the way, you are still officially in Chapter 0 at this point (that’s “zero,” not “oh”).

Pogue’s book is smoothly written. (You don’t, after all, just luck into writing for the Times.) It has a good array of screenshots and other illustrations. And it offers plenty of tips and notes amid the instructional paragraphs.

The book’s six parts (with seven chapters each) are focused as follows:

  • Part 1: The Mac OS X Desktop – “[C]overs everything you see on the screen when you turn on a Mac OS X computer….”
  • Part 2: Programs in Mac OS X - Describes “how to launch them, switch among them, swap data between them, use them to create and open files, and control them using the AppleScript and Automator automation tools.”
  • Part 3: The Components of Mac OS X - “[A]n item-by-item discussion of the individual software nuggets that make up this operating system–the 29 panels of System Preferences and the 50-some programs in your Applications and Utilities folders.”
  • Part 4: The Technologies of Mac OS X – “Networking, file sharing, and screen sharing…” plus “fonts, printing, graphics, handwriting recognition…sound, speech, movies…” and even some looks at how to use “Mac OS X’s Unix underpinnings.”
  • Part 5: Mac OS X Online – “[C]overs all of the Internet features of Mac OS X.” Everything from email to chatting to working in the cloud, and even “connecting to, and controlling, your Mac from across the wires — FTP, SSH, VPN, and so on.”
  • Part 6: Appendixes – These include a Windows-to-Mac dictionary (for Windows refugees), information on installing Mac OS X, troubleshooting information, and “a thorough master list of all the keyboard shortcuts and trackpad/mouse gestures in Lion.”

If you’re serious about using your Mac and weary of opening endless not-so-helpful help screens, you should seriously consider owning this book.

A Programmer’s Guide to MacRuby

MacRuby: The Definitive Guide
By Matt Aimonetti
(O’Reilly, paperback, list price $39.99; Kindle edition, list price $31.99)

“MacRuby,” the author says, “is Apple’s implementation of the Ruby programming language on top of the Objective-C technology stack.”

His book is a straightforward, no-nonsense guide intended to show developers how “to write native applications for the Cocoa environment using the popular Ruby syntax as well as the well-known and robust Objective-C and C libraries.”

He declares his work “neither a Ruby book nor a Cocoa book,” but states that “it should provide you with enough information to understand the MacRuby environment and create rich applications for the OS X platform.”

MacRuby: The Definitive Guide is segmented into two major parts. Part 1 (“MacRuby Overview”) introduces MacRuby, including what it is, how it’s installed, how it works, what you can do with it, and how it relates to what you already probably know. Part 2 (titled “MacRuby in Practice”)  “covers concrete examples of applications you might want to develop in MacRuby.”

Using short, concise code examples, Matt Aimonetti helps the reader dive straight into MacRuby, beginning at the classic “Hello, World!” entry point, with a little twist.

In just 35 lines of code, you learn how to build a graphical user interface (GUI) application that displays the words “MacRuby: The Definitive Guide” in a window with a button. The window shows “Hello World!” within a box, and your computer speaks “Hello, world!” when you click on the button.

The first eight chapters focus on topics such as: introduction, fundamentals, foundation, application kit, Xcode, core data, and getting deeper into the process of “developing complex apps.”

The topics of the final five chapters are: (1) creating an Address Book example; (2) creating an application that “uses the user’s geographical location and a location web service”; (3) using MacRuby in Objective-C projects; (4) using Objective-C code in MacRuby apps; and (5) using Ruby third-party libraries. 

Before reading this book and tackling the code, the author recommends having some programming experience and basic familiarity with object-oriented programming. You also should get a basic overview of the Ruby language by visiting its main website.

Si Dunn 

Droid X2: The Missing Manual – #droid #bookreview

Droid X2: The Missing Manual
By Preston Gralla
(O’Reilly, paperback, list price $19.99; Kindle edition, list price $9.99)

Got, getting or giving a Droid X2 smartphone?

Consider adding this useful how-to manual to the mix. Droid X2: The Missing Manual bills itself as “The book that should have been in the box.” But it’s likely much bigger than the phone’s box.

The 399-page manual, written by veteran technology writer Preston Gralla, is nicely structured, well-illustrated and chock full of information on using the Droid X2′s many features. The book is organized into six parts.

 Part 1 covers “Android Basics.” It gives a guided tour of features and shows how to make calls, do text messages, manage contacts, use Caller ID, make conference calls, and handle other tasks.

Part 2 focuses on “Camera, Pix, Music, and Video” and how you can use a Droid X2 to take photographs, play and manage music, and record, edit and view videos.

Part 3, “Maps, Apps, and Calendar,” shows “how to navigate using a GPS, to find any location in the world with maps, to find your own location on a map, to get weather and news, to use a great calendar app, and to synchronize that calendar with your Google calendar, or even an Outlook calendar,” Gralla writes.

Part 4, “Android Online,” discusses “everything you need to know about the Droid X2′s remarkable online talents.” This includes getting online over Verizon’s network or a wi-fi hotspot, using your Droid X2 as a portable G3 hotspot, checking email, surfing the Internet and downloading and using apps.

Part 5 covers “Advanced Topics,” including syncing and transferring files between a Droid X2 and a Mac or a PC, using your voice to control your Droid, and using your Droid at your workplace. Part 5 also includes a nice listing of Droid X2 settings.

Part 6, “Appendixes,” has three “reference chapters” showing how to activate a Droid X2, which accessories are available, and how to troubleshoot various issues.

This “Missing Manual” includes a link to a website where you can keep up with updates and changes to the Droid X2, plus corrections to the book.

Meanwhile, a “Missing CD” web page link provided in the book gives clickable links to the websites that are mentioned in the text.

Many new users of the Droid X2 likely will find this book helpful. So will experienced users who have mostly focused on voice calls and text messages and now want to master some of their smartphone’s other features. 

Si Dunn