Real World Software Architecture

Real World Software Architecture is dedicated to providing information and experiences from the field of Software Architecture.



Subscribe with RSS or ATOM Add to Google

Links

  • Home Page
  • Real World Software Process Engineering
  • Suggested Reading
  • .NET Dev and Arch Collection
  • SEI Essays on SA
  • Software Architecture
  • Bredemeyer
  • wwisa
  • Product Line Engineering
  • PLEES
  • Software Product Lines
  • MSDN Architecture Center
  • patterns & practices






Tuesday, August 28, 2012

OS X Mountain Lion Pocket Guide Book Review

A nice compact way of getting familiar with OS X Mountain Lion. It is an overview of everything included with OS X Mountain Lion.

The easiest way to show you the high level topics covered is to list the table of contents. I have listed the chapters below along with the topics included in each.

Chapter 1 : What’s New in Mountain Lion?
Improved iCloud Integration
Sharing Everywhere

Chapter 2 : Installing Mountain Lion and Migrating Data
What You Need to Run Mountain Lion
Preparing for the Install
Installing Mountain Lion

Chapter 3 : A Quick Guide to Mountain Lion
What You Need to Know About OS X
Using Mountain Lion
Mountain Lion Basics
Standard Window Controls
Full-Screen Applications
Files and Folders
Nonessential (but Useful) OS X Features
Auto Save and Versions
Resume

Chapter 4 : Troubleshooting OS X
Common Problems

Chapter 5 : System Preferences
Preference Pane Rundown
Non-Apple Preference Panes

Chapter 6 : Built-in Applications and Utilities
Applications Installed with Mountain Lion
Utilities Included with Mountain Lion

Chapter 7 : Managing Passwords in Mountain Lion
Password Management

Chapter 8 : Keyboard Commands and Special Characters
Key Commands
Typing Special Characters in OS X

It is the perfect size to take it along on trips where I can put it in my pocket. Like shopping trips with my wife. It gives me something to read while waiting outside the dressing room.

I really like that this book has an index. A very nice index. I have purchased other pocket version books and even some short full size books lately that don't have one. It is very annoying to not have an index.

All in all I think this is the best way to conveniently learn about the features available in OS X Mountain Lion.

OS X Mountain Lion Pocket Guide


For more book recommendations check out my .NET, iOS, and Java Architecture and Development Book Recommendations for 2013

posted by tadanderson at 6:06 PM 0 comments

Monday, August 27, 2012

OS X Mountain Lion: The Missing Manual Book Review

I purchased the OS X Lion: The Missing Manual to help me ramp up for my new MacBook Pro. Although I had been a Mac user in the past, it was in the distant past. It did a great job answering all the questions I had as I familiarized myself with the Mac operating system. The author does a great job of explaining things and he covers a ton of information.

As soon as the OS X Mountain Lion: The Missing Manual version was available I wanted it. It is by far the best resource available for getting answers quickly to any questions I have about the new OS X Mountain Lion operating system.

The book is divided into six parts. I have listed each part below and the chapters included in each one.

One. The OS X Desktop
0. The Mountain Lion Landscape
1. Folders & Windows
2. Organizing Your Stuff
3. Spotlight
4. Dock, Desktop & Toolbars

Two. Programs in OS X
5. Documents, Programs & Spaces
6. Data: Typing, Dictating, Sharing & Backing Up
7. Automator, AppleScript & Services
8. Windows on Macintosh

Three. The Components of OS X
9. System Preferences
10. Reminders, Notes & Notification Center
11. The Other Free Programs
12. CDs, DVDs, iTunes & AirPlay

Four. The Technologies of OS X
13. Accounts, Security & Gatekeeper
14. Networking, File Sharing & AirDrop
15. Graphics, Fonts & Printing
16. Sound, Movies & Speech

Five. OS X Online
17. Internet Setup & iCloud
18. Mail & Contacts
19. Safari
20. Messages
21. SSH, FTP, VPN & Web Sharing

Six. Appendixes
A. Installing OS X Mountain Lion
B. Troubleshooting
C. The Windows-to-Mac Dictionary
D. The Master OS X Secret Keystroke List

I am amazed at the level of detail the author goes into with each of the topics covered. There are only a few things I would like to see added to the book. They are the missing AppleScript and Unix chapters that can be found on line.

By far the biggest disappointment with the OS X Mountain Lion: The Missing Manual version is the removal of the Unix information. When I got this book I took the OS X Lion: The Missing Manual out of my backpack and put this in. I got to work, pulled out the book, cracked it open to where the Unix chapter was and only found… there is a whole chapter on it waiting online. It was weird to see a new edition of a book shrink by 42 pages instead of grow.

I don't buy book so they can point me to missing chapters online. I buy them so I don't have to be online. I have to say it was a pretty big letdown. I can either keep this and my The Mac OS X Command Line: Unix Under the Hood with me, or go back to OS X Lion: The Missing Manual. Not sure which I will do yet. I would probably not have been as disappointed if the Unix chapter wasn't the chapter I was just starting when I got OS X Mountain Lion: The Missing Manual.

Beyond the missing Unix chapter, I do not have any gripes. I think this is an excellent way to learn to use OS X Mountain Lion and an excellent reference for looking up issues that come up.

I highly recommend it to the user that wants to know how to use all the applications and features included with OS X Mountain Lion in detail. The most amazing thing about this book is the level of detail the author goes into with each subject.

The author has an online site that accompanies the book. It has links to all the tools mentioned, and PDFs of all the chapters that should be in the book.

All in all this is by far the best resource for learning about OS X Mountain Lion.

OS X Mountain Lion: The Missing Manual


For more book recommendations check out my .NET, iOS, and Java Architecture and Development Book Recommendations for 2013

posted by tadanderson at 4:05 PM 0 comments

Wednesday, August 22, 2012

Test-Driven iOS Development Book Review

This is a great book for both someone who wants to learn Test Driven Development (TDD), anyone that wants to learn how to do unit testing in Xcode, and anyone who wants to improve their designs using TDD.

The author begins the book with a nice overview of the benefits of testing and how to use TDD to achieve those benefits. He then moves right into how to write unit tests and covers the tools available for unit testing.

He covers OCUnit test (integrated with Xcode) in detail and introduces Google Toolkit for Mac, GHUnit, CATCH, and OCMock. He then introduces continuous integration with coverage of Hudson / Jenkins and CruiseControl.

After introducing the tools, the author spends the next six chapters building an application using TDD. He starts with a specification and ends with a working application. I have listed the chapters below. Their titles explain what they cover and show how the author attacked building the application.

About Software Testing and Unit Testing
Techniques for Test-Driven Development
How to Write a Unit Test
Tools for Testing
Test-Driven Development of an iOS App
The Data Model
Application Logic
Networking Code
View Controllers
Putting It All Together
Designing for Test-Driven Development
Applying Test-Driven Development to an Existing Project
Beyond Today’s Test-Driven Development

The cool thing about the chapters that cover the building of the applications is that the author hits on a ton of subjects in all the different layers of a typical application. The book hits on NSURLConnection, JSON, UITableVieController, view controllers, NSData, and a ton of the STAssert* macros.

The book ends with three chapters chalked full of advice on how to design using TDD principles, how to apply tests to an existing projects and how refactoring plays a big role applying them, and the last chapter takes a look at the future of test driven development in the Cocoa Touch world.

The code is downloadable as a completed project. It is very well organized and usable. It runs with no modifications needed.

All in all I found this book to be an enjoyable read. The author's writing style kept my attention and he was very clear when explaining things. He also offered a lot of advice via relevant sidebars throughout the book.

If you are an iOS developer, or just a developer interested in TDD, this book is a must read!!!

Test-Driven iOS Development


For more book recommendations check out my .NET, iOS, and Java Architecture and Development Book Recommendations for 2013

posted by tadanderson at 1:21 PM 0 comments

Wednesday, August 15, 2012

The iOS 5 Developer's Cookbook: Core Concepts and Essential Recipes for iOS Programmers Book Review

This book is much more than just a cookbook with a bunch of recipes in it. I have used plenty of cookbooks and they are never readable from cover to cover. I usually just familiarize myself with the recipes that are available, read the ones interesting to me at the time, and throw them on the shelf until I need them. This one I have not been able to put down.

The author does a great job of mixing a traditional book with a recipe book. Most chapters contain both background information and recipes. Some chapters are mostly made up of recipes, and the first three chapters contain none to a very few. The first three chapters are dedicated to introducing the iOS SDk, Objective-C, and Xcode.

I have listed the chapters below to give you a high level view of the topics covered.

Introducing the iOS SDK
Objective-C Boot Camp
Building Your First Project
Designing Interfaces
Working with View Controllers
Assembling Views and Animations
Working with Images
Gestures and Touches
Building and Using Controls
Working with Text
Creating and Managing Table Views
A Taste of Core Data
Alerting the User
Device Capabilities
Networking

This book lives up to the cookbook title. There is tons of code that comes with it and it is all very well organized and usable. The only thing I didn't like was that the author used HelloWorld.xcodeproj for the project name every time. After you open a few projects you have to go to Finder and the actual folder to reopen a specific one because all your shortcuts are HelloWorld.xcodeproj. I do like that the samples are built to run on both the iPad and iPhone, and that they run without the need to tweak them.

This book covers a ton of material, but of course I always would like to see more. The thing I would like to see most in a fourth edition of this book is much more coverage of dealing with security on web services and JSON over REST. I am using the NSJSONSerialization class, which the author only lightly touches on in the book and provides a small sample application.

I am not going to ding the book for not providing detailed coverage of dealing with security on web services and JSON over REST because it covers so much already in such great detail. No one is covering web services in enough detail for me, and although several authors have said there are plenty of resources on the web, there aren't. Especially when it comes to samples that also include security. Apple's developer documentation is greatly lacking in this area also. They provide plenty of theory, but no good clean concrete samples.

I think this book is great for both the beginner and the experienced developer. The author does a great job of explaining complex topics that make it easy to understand while going in-depth enough to completely explain the topic at hand.

This book is an invaluable asset for any iOS developer and I highly recommend it. This book will continue to be within arms reach every time I open Xcode.

The iOS 5 Developer's Cookbook: Core Concepts and Essential Recipes for iOS Programmers

posted by tadanderson at 9:18 AM 0 comments

Sunday, August 12, 2012

Cocoa Design Patterns Book Review

This is one very cool book. If you want to get to know Cocoa from the inside out, this is the book to pickup.

The authors start out with a great introduction to MVC in Part I of the book. In the second chapter the author builds an application with a non-MVC design and then refactors it to an MVC application. He does a great job of showing advantages of using MVC.

The next three parts of the book are the patterns catalogs. The first covers fundamental patterns, the second covers patterns that help with decoupling, and the third covers patterns that help to hide complexity.

The last part of the book covers Core Data, the Application Kit, and Binding and Controls. The chapters on Core Data and the Application Kit both contain really nice diagrams of the key design patterns used to implement them and where to find their coverage in the book.

I have listed each part and the chapters included in each below.

Part I- One Pattern to Rule Them All
Ch. 1. Model View Controller
Ch. 2. MVC Analyzed and Applied

Part II- Fundamental Patterns
Ch. 3. Two-Stage Creation
Ch. 4. Template Method
Ch. 5. Dynamic Creation
Ch. 6. Category
Ch. 7. Anonymous Type and Heterogeneous Containers
Ch. 8. Enumerators
Ch. 9. Perform Selector and Delayed Perform
Ch. 10. Accessors
Ch. 11. Archiving and Unarchiving
Ch. 12. Copying

Part III- Patterns That Primarily Empower by Decoupling
Ch. 13. Singleton
Ch. 14. Notifications
Ch. 15. Delegates
Ch. 16. Hierarchies
Ch. 17. Outlets, Targets, and Actions
Ch. 18. Responder Chain
Ch. 19. Associative Storage
Ch. 20. Invocations
Ch. 21. Prototype
Ch. 22. Flyweight
Ch. 23. Decorators

Part IV- Patterns That Primarily Hide Complexity
Ch. 24. Bundles
Ch. 25. Class Clusters
Ch. 26. Façade
Ch. 27. Proxies and Forwarding
Ch. 28. Managers
Ch. 29. Controllers

Part V- Practical Tools for Pattern Application
Ch. 30. Core Data Models
Ch. 31. Application Kit Views
Ch. 32. Bindings and Controllers

The thing I like most about this book is the insight it provides into the Cocoa framework. Every pattern includes four sections, Motivation, Solution, Examples in Cocoa, and Consequences. The Examples in Cocoa section does an excellent job of showing how great Cocoa is designed.

The authors do a great job of making use of UML, screenshots, and other diagrams to bring a visual representation to the topic at hand.

Another thing the authors did well was providing links to addition information in the Apple Developer Documentation. This comes in handy if the authors include a topic you aren't up to speed on.

All the code is available for download. It is very well organized and usable. The projects need updated when they are opened, but I didn't run into any that didn't work.

I have always found that the best way to learn to use a language to its fullest potential is through a well-written design patterns book. This one is one of the best I have read. I will be keeping it by my side.

All in all, if you are an iOS or OS X developer you should read this book cover to cover and then keep it close for reference. This is a must read!!!


Cocoa Design Patterns

posted by tadanderson at 10:33 AM 0 comments

Previous Posts

  • DevOps: A Software Architect's Perspective Book Re...
  • Scaled Agile Framework (SAFe) LiveLessons Video Se...
  • Bulletproof Android: Practical Advice for Building...
  • Swift for Programmers Book Review
  • Security in Computing (5th Edition) Book Review
  • Swift in 24 Hours, Sams Teach Yourself Book Review
  • Sparx Systems Releases Enterprise Architect 12
  • Learning Swift Programming Book Review
  • Android Security Internals: An In-Depth Guide to A...
  • Adaptive Code via C#: Agile coding with design pat...



Archives

  • December 2005
  • January 2006
  • February 2006
  • March 2006
  • April 2006
  • June 2006
  • August 2006
  • October 2006
  • November 2006
  • December 2006
  • January 2007
  • February 2007
  • March 2007
  • April 2007
  • May 2007
  • June 2007
  • July 2007
  • August 2007
  • September 2007
  • October 2007
  • November 2007
  • December 2007
  • January 2008
  • February 2008
  • March 2008
  • April 2008
  • May 2008
  • June 2008
  • July 2008
  • August 2008
  • September 2008
  • October 2008
  • December 2008
  • January 2009
  • February 2009
  • March 2009
  • April 2009
  • May 2009
  • June 2009
  • July 2009
  • August 2009
  • September 2009
  • October 2009
  • November 2009
  • December 2009
  • January 2010
  • February 2010
  • March 2010
  • April 2010
  • May 2010
  • June 2010
  • August 2010
  • September 2010
  • October 2010
  • November 2010
  • December 2010
  • January 2011
  • February 2011
  • March 2011
  • April 2011
  • May 2011
  • June 2011
  • July 2011
  • August 2011
  • September 2011
  • October 2011
  • November 2011
  • December 2011
  • January 2012
  • February 2012
  • March 2012
  • April 2012
  • May 2012
  • June 2012
  • July 2012
  • August 2012
  • September 2012
  • October 2012
  • November 2012
  • December 2012
  • January 2013
  • February 2013
  • March 2013
  • April 2013
  • May 2013
  • June 2013
  • July 2013
  • August 2013
  • September 2013
  • October 2013
  • November 2013
  • December 2013
  • January 2014
  • February 2014
  • March 2014
  • April 2014
  • May 2014
  • June 2014
  • July 2014
  • August 2014
  • September 2014
  • October 2014
  • December 2014
  • February 2015
  • March 2015
  • April 2015
  • June 2015
  • July 2015
  • September 2015

Powered by Blogger