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






Monday, November 26, 2012

Programming Android: Java Programming for the New Generation of Mobile Devices Book Review

The second edition of this book came just at the right time. I am currently working on a project that uses Microsoft's Web Api RESTful services to interface with iPhone, iPad, Windows 8 Phone, Windows 8 Tablets, and Android devices. The Android devices are the last in the initial build of the framework to be added to the architecture.

This book was perfect for getting me over that hurdle quickly. It starts with a chapter on downloading, installing, and configuring, Eclipse, the Android SDK, and the Android Developer Tools. It also walks you through creating an Android Virtual Device. After failing to get the Android tools to successfully setup up on Windows 8 three times, I decided to set up my development environment on my MacBook, which was one and done.

The book is broken down into four parts. I have listed each one along with the chapters they contain.

I. Tools and Basics
1. Installing the Android SDK and Prerequisites
2. Java for Android
3. The Ingredients of an Android Application
4. Getting Your Application into Users’ Hands
5. Eclipse for Android Software Development

II. About the Android Framework
6. Building a View
7. Fragments and Multiplatform Support
8. Drawing 2D and 3D Graphics
9. Handling and Persisting Data

III. A Skeleton Application for Android
10. A Framework for a Well-Behaved Application
11. Building a User Interface
12. Using Content Providers
13. A Content Provider as a Facade for a RESTful Web Service

IV. Advanced Topics
14. Search
15. Location and Mapping
16. Multimedia
17. Sensors, NFC, Speech, Gestures, and Accessibility
18. Communication, Identity, Sync, and Social Media
19. The Android Native Development Kit (NDK)

As you can see by the chapter's names, the book covers a lot of topics. I found the author covered the topics with enough detail to thoroughly explain the topic at hand.

I liked Chapter 2, Java for Android. Coming from a C# and Objective-C environment, I thought the chapter did a nice job of covering the syntax of Java.

Chapter 3, The Ingredients of an Android Application, is absolutely essential for anyone coming from Windows Phone, Windows Store Apps, iPhone, or iPad development. It does a great job of covering the high-level concepts of programming on the Android Platform. It introduces you the Android language and concepts.

Chapter 5 was a nice touch. The author takes the time to cover what Android programming looks like in Eclipse. I have used the Eclipse Process Framework, TOPCASED, Archi, GOSU, and a few other configurations. It was nice to just have the Android environment explained instead of having to figure it out.

The author has all the examples used in the book available for download. They're very well organized and usable. All of the examples ran without needing any modification. You can import them into Eclipse and hit run. Just make sure you download the code for the second edition. I downloaded the first edition's code initially.

The Android environment is a complex one. At least I found it to be more complex than iOS and .NET. Without this book I would not have gotten very far. The author did a great job of explaining activities, intents, tasks, services, and contents providers early in the book which help me understand the context in which the different elements live.

This book is great for reading from cover to cover as well as using it as a reference. I plan on keeping this book by my side. This book is for anyone looking to get into Android programming or anyone looking for direction on building Android applications with the latest APIs, tools, and best practices.

Programming Android: Java Programming for the New Generation of Mobile Devices


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

posted by tadanderson at 12:46 PM 0 comments

Wednesday, November 21, 2012

Master Your Mac: Simple Ways to Tweak, Customize, and Secure OS X Book Review

This book is a great addition to my collection of Mac how to books. I like this one because it steps over the line into the more technical side of Mac features than most of the Mountain Lion guide books do.

The book is broken down into seven parts. I have listed the parts below along with the chapters they each contain.

I. Back to Basics
1. The Best Shortcuts (and How to Make Your Own)
2. Starting Applications Automatically at Login
3. Finding Files and Folders Fast
4. Organizing Windows
5. Cleaning House
6. Adjusting Energy and Display Settings

II. Boosting Productivity
7. Launching Applications Fast
8. Customizing Trackpad and Mouse Gestures
9. Connecting Multiple Displays to Your Mac
10. Talking to Your Mac

III. Automation
11. Automating Tasks with Macros
12. Automating Tasks with AppleScript
13. Creating a Bluetooth Proximity Monitor
14. Automating File and Folder Actions
15. Triggering Location-Based Actions

IV. Managing Your Life
16. Managing Your Email
17. Killing Spam
18. Creating Quick and Easy Alerts
19. Managing Your Music

V. Internet and Networks
20. Creating Your Own Safari Extension
21. Turning Websites into Applications
22. Storing Files in the Cloud
23. Accessing Your Mac Remotely
24. Turning Your Mac into a Web and FTP Server
25. Wirelessly Sharing a Printer and Hard Drive
26. Synchronizing Files Between Computers

VI. Serious Security
27. Creating Strong Passwords and Storing Them Securely
28. Enabling Firmware Password Protection
29. Encrypting Your Mac’s Internet Connection
30. Enabling Firewalls
31. Preserving Your Anonymity Online
32. Encrypting Your Hard Disks and Backups

VII. Monitoring, Troubleshooting, and Maintenance
33. System and Process Monitoring
34. Repairing Disk Permissions
35. Verifying and Repairing the Hard Disk
36. Making Better File Backups
37. Maintaining a MacBook’s Battery
38. Creating an Emergency USB Drive

One of the things I like about the book is the way it is laid out. It has a very comfortable and easy to read format. Each chapter starts with an overview of the topic, the project goal for the chapter, and a What You'll be using section. The author then digs into the details of the topic.

At the beginning of each chapter there is a "What You'll be Using" section. This section lists all the tools the author takes advantage of in the chapter. The tools are not all free open source tools. There are some tools listed that must pay for, but I would rather have the tools that get the job done right, than just partial open source tools. Some books I've read have only used open-source tools and a lot of times they've been limited in their functionality.

The author's writing style makes the topics at hand very easy to understand and makes the book a very easy read. It not only can be read from cover to cover, it also make a great reference.

Some of the chapters that were a pleasant surprise were Turning Your Mac into a Web and FTP Server, Preserving Your Anonymity Online, Encrypting Your Mac’s Internet Connection, Creating Your Own Safari Extension, Automating Tasks with AppleScript, and Creating a Bluetooth Proximity Monitor.

The author covers downloading, installing, and configuring MAMP. The author helps you get Apache and MySQL up and running in no time at all.

I love that the author introduces the Tor Browser Bundle and Vidalia Bundle in the Preserving Your Anonymity Online chapter. Not many people know about it. I have used it several time when running through white hat hack attacks during security testing.

This book will stay in my backpack. I highly recommend it to anyone who wants to take the Mac user skills to the next level.

Master Your Mac


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

posted by tadanderson at 12:37 AM 0 comments

Tuesday, November 20, 2012

Building Windows 8 Apps with C# and XAML Book Review

This book is the perfect size and the perfect depth for getting up to speed quickly with building Windows 8 Store Applications.

The book starts by introducing WinRT. This introduction includes a really nice history of how Microsoft got to where they are now. It starts with a look back at MS-DOS, MS-DOS Executive, the Win32 API, COM, and.NET. The introduction leads us up to NUI (Natural User Interface) and the Windows Store Application Design Principles.

The first chapter ends with a look at the Windows 8 tool that are available to developers and designers. They include, Blend for Visual Studio, C++ and XAML, HTML5 and JavaScript, and VB/C# and XAML.

I have listed all the chapters below.

1. The New Windows Runtime
2. Getting Started
3. Extensible Application Markup Language (XAML)
4. Windows 8 Applications
5. Application Lifecycle
6. Data
7. Tiles and Toasts
8. Giving Your Application Charm
9. MVVM and Testing
10. Packaging and Deploying

The Getting Started chapter covers setting up your environment, which includes Windows 8, Visual Studio 2012, and expression blend for Visual Studio. It also covers the details of all the available project templates that come in the Windows Store category of Visual Studio's project templates.

The book then continues on with a nice overview of XAML. The author does a good job of covering a lot of topics as well as going in-depth enough to give you a thorough understanding of the topics that he chose to cover. XAML is a big topic, but the author did a great job of covering the essentials needed to get started.

Chapter 4, Windows 8 Applications, starts out with a nice overview of the Windows 8 simulator that comes with the development environment. The chapter continues on covering the application view states, semantic zoom, how to handle user input, mouse support, keyboard support, sensors, the application bar, and much more.

The one thing that the book really brought to light was a big flaw with the Windows Store Applications design. Not so much by explicitly pointing it, but rather by having nothing to say about it. That flaw being, a complete lack of capability for the applications to be run off-line with any sizable local data store. There really is no large data storage available to the Windows Store Applications beyond application state persistence. That raised a big red flag.

In searching the web, I found a lot of people having big issues with that. It looks like SQLite has come up with a solution they say will make it through the Windows Store approval process.

The chapter Giving Your Application Charm covers contracts and Windows 8 Extensions which allow for application information sharing handled at an operating system level. This is one of the coolest features built into Windows 8.

The book ends with a short chapter on MVVM and unit testing, and a short chapter on packaging and deploying.

The author has all the examples used in the book available for download. They're very well organized and usable. All of the examples ran without needing any modification.

Overall I found this book an enjoyable read. I thought the author's writing style made the book very easy to read from cover to cover. I will also be keeping it by on my side to use as a reference.

If you are planning on building Windows 8 Applications with C# and XAML, I recommend you start with this book. It will give you a great foundation on which to build your experience.


Building Windows 8 Apps with C# and XAML


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

posted by tadanderson at 3:29 PM 0 comments

Monday, November 05, 2012

Learning Unix for OS X Mountain Lion Book Review

This was a perfect size book for what I needed. What I needed was a book that would get me back up to speed quickly on UNIX. I have not used UNIX since the late 80's, and I have not used Mac since the early 90's.

The book starts off with a nice introduction to you Unix and why you would want to use it. The second chapter using the Terminal, is a nice introduction to Terminal's capabilities and shows you how to customization.

After the first two chapters the book starts digging into the details of what you can do with Unix on the Mac. I have listed the chapters below.

1. Why Use Unix?
2. Using the Terminal
3. Exploring the Filesystem
4. File Management
5. Finding Files and Information
6. Redirecting I/O
7. Multitasking
8. Taking Unix Online
9. Of Windows and X11
10. Where to Go from Here

As you can see from the chapter names the author covers some of the most important topics you need to know with a chapter dedicate to each.

The only chapter that is not completely clear on what it covers is Taking Unix Online. That chapter digs into remote login, web access, and FTP.

Although the book talks about using the code samples that come with the book, I could not find any online. That did not take anything away from the book. The samples are short enough to be able to type them yourself. I found that I wanted to read this book with my Mac turned on to try the different samples that the author covered.

The author has a great writing style that makes the book an easy read. I have some other UNIX books where that is not true.

Overall I think this is a great book for getting up to speed with UNIX quickly. This book along with my Macintosh Terminal Pocket Guide have covered everything that I had to look up to date.

Learning Unix for OS X Mountain Lion: Using Unix and Linux Tools at the Command Line

posted by tadanderson at 3:27 PM 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