Friday, March 20, 2009

Book Review: Beginning iPhone Development: Exploring the iPhone SDK

This is the most enjoyable computer book I have ever read. That is not a typo, it's not an exaggeration. I have read more computer books than I can count, spanning decades. I have not had a more fun, immersive, reasonably comprehensive, easy to understand, software development book. This book has taken longer for me to review than any other I can remember. Learning a new platform can be challenging, but with this book, it was incredibly enjoyable. If you are getting started with iPhone/iTouch programming, and you are looking for a book, this one is easily at the top of the list. Start here first, you won't regret it. Beginning iPhone Development: Exploring the iPhone SDK is outstanding in every way.

So why is this book so great?
The journey is rich. This book has a very clear purpose, to get you up and running with the iPhone SDK quickly and competently. It succeeds masterfully. If you're coming from the outside, with no Objective-C or Mac experience, you have a lot to learn. You have a new platform, new language, new development tools, new APIs, new GUI expectations, and (if you are so lucky) a new Mac. With all those challenges, I cannot be more impressed with how well this book handles that potential scenario without losing any focus or trying to do too much.

This book never gets distracted. It has incredible flow. It doesn't waste time. There is so much to try and explore and understand in these pages, that you just get caught up in it. I have read a lot of books that whole chapters were just fluffy, or there to simply cover the territory. You can skim through the chapter without feeling any sense of loss. This book isn't like that at all. I found I couldn't breeze through this book. I was having too much fun.

Comprehension is the key
It's easy to go over some basic concepts, and apply them with some examples. I've read lots of really good books that have done that. If you're going to really become skilled, you have to have some comprehension of what is going on and why. While it wold be easy to just blaze through all the templates, like a TabBar application, this book has you build things yourself. This way you get to understand what is connected to what, and why. I think this is a critical benefit. I think its more important in the long term to understand what is going on, rather than a how-to of project templates.

MVC and Interface Builder
In order to do any Cocoa programming well, you need to embrace the model-view-controller pattern (MVC). This book does an outstanding job of connecting the objects, where, when, and why. After you get through a couple of chapters, this gets easy, and puts you in a positive work flow. I've found in learning Objective-C and Cocoa, that the better you embrace this, the better off you'll be.

If you are a sloppy, Microsoft Windows kinda programmer, you are in for a rude awakening. Mac-based development requires a high level of discipline and quality just to get successful compiling. As for myself, I completely love it. I enjoy the discipline, and I'm rewarded with performance and stability. This book reinforces everything I love about Mac programming in general, as well as letting me extend it to a new platform. This book keeps you on the right track, out of trouble, and doesn't let you go astray.

Covering the SDK territory
One of the strengths of this book is how much of the SDK is covered. You would expect a lot less from a "beginning" book. This book is for someone who is beginning, so the title is appropriate. But the reward is how MUCH of a beginning you get from this book. It's like a collection of goodies being handed to you one at a time, and they just keep coming.

I really appreciated that there was a chapter on Quartz and OpenGL ES. The coverage of the multitouch architecture was well written. I was just engulfed with fun things to test, and it was easy to absorb. Core Location was covered, which gives you all kinds of creative ideas about using the GPS in the iPhone 3G. The Accelerometer chapter is one of the best parts of the book. It also covers the camera, which is another item that relates to the iPhone, but not the iTouch.

Comparisons
The part that was lacking, compared to other iPhone books, is not covering video and audio. But it more than makes up for it in its coverage of localization. With the iPhone in 80 countries now, it's best to have that understood from your first iPhone app. I'm also glad it didn't waste my time talking about web apps for iPhone. The mood of the book is not intimidating, which can happen in computer books in general. The prose never gets "nerdy."

Another comparison I want to make is to the expensive iPhone camps and webinars. Personally, I felt I got a much better experience from this book than the online seminars I've been in. The value of this book in comparison is amazing. If you want to do a seminar, great, but bring this book with you.

Conclusion
The strength in Beginning iPhone Development: Exploring the iPhone SDK is how well it covers the SDK from a dead start. It gets you doing good habits now for those things you NEED to know now. This book has style and substance. It's wonderful, polished, and relaxed. I would compare this book to Girardelli premium chocolate squares. It's a great experience, that makes you happy, that you can't scarf down, that you simply enjoy slowly because it's so rich. For beginning iPhone development, you could not ask for a better book than this one.

Friday, January 9, 2009

New Splore.org webste goes live


For those who know us, we have been doing a lot of programs with Splore.org. They are a non-profit that organizes (mostly) outdoor adventures for people with disabilities. I've been helping their staff go through a redesign of their website, and incorporating their new logo. I'm happy to say that it's done now. Well, at least this phase, as websites are always evolving.

For webmasters, it is a rigid example of CSS and SEO that works cross-browser. There are a lot of Flash galleries and videos to go around. For everyone else, it's more organized, more exciting, more maps, required documents easily found, more everything. Except for clicking, there's less of that, less hunting for all the materials you need to do a program. Special thanks to Steve Powell and Patrick Tokarski for putting up with me.

Splore.org is a great organization, with great people. Aaron, Debbie and I were awarded their Splore Spirit Participant of the Year Award for 2008. We were presented the award during the Harvest Moon Auction and Dinner, and got a very nice plaque, which is proudly displayed in Aaron's room. He earned it.

Saturday, November 29, 2008

Honda and Suzuki snub American motorcycle race fans in 2009


Two of the "Big Four" Japanese motorcycle manufacturers have committed to a motorcycle racing season next year with no American riders on factory teams. Honda and Suzuki are taking a gamble that American race fans who ride Hondas and Suzukis will be content to cheer for ..... no one. At least no one from America. I think it is a mistake to take a publicity dive in the world's largest motorcycle market. American racers sell bikes in America. In 2009, the cheering and the sales in America will be around Ducati, Yamaha, and Kawasaki. Regardless of who wins the races next year, Honda and Suzuki are losers. Here's why.

America motorcycle dealers will have no excitement about their riders.
Imagine yourself next spring, talking with your local dealer about racing, saying, "I'm rooting for (insert rider name) this year." If you are a Honda or Suzuki dealer, the names they will mention will not be riding your bikes. No posters of Americans, no rider helmet paint schemes, no public face, literally nothing that represents "American Honda." Zip, nada. "American Suzuki" has (drum roll) Tommy Hayden. I love Tommy, but as an American, I'm not feeling the love.

In sharp contrast, Ducati dealers are literally sqealing with glee to get Nicky Hayden associated with their brand. They are going to sell bikes, and I suspect, a ton of merchandise. The better he does, the more they will sell. Yamaha still has Edwards, Ben Spies in World Superbike, and if American superbike gets sorted, they will have Americans there too. They are covered. Kawasaki has Hopper, Hacking, and Roger Lee Hayden. Covered. Lots of buzz and smiles at those dealers, feeling the love.

America media will have no excitement about their riders.
When local media covers the GPs at Indy and Laguna Seca next year, they will be drumming up the American riders and their chances. Do you think Honda and Suzuki will even get a mention? I seriously doubt it. No tv interviews, no serious ink. Although Honda has a great potential for more bad press, as it did at this year's Indy event. The void of charisma in the Honda and Suzuki garages is absolutely staggering.

Honda and the Spanish Mafia
The press has had a field day with Honda's generally accepted mistreatment of Nicky Hayden. The negative press around Alberto Puig and Dani Pedrosa is embarrassing. Honda wants to win, at all costs. Repsol, the Spanish oil Company is their major sponsor. Dorna, a Spanish media corporation, controls the series rules and media distribution. I don't know of a single American that is rooting for Pedrosa. Even if Pedrosa does win the championship, it will always be tainted in the eyes of American race fans. Honda has shown us that it actually is possible to use racing to reduce sales in your best market. (That's not a compliment.)

Suzuki embraces GP mediocrity
Suzuki had a promising young American rider named Ben Spies, poised to be the next Kevin Schwantz (at least a prayer anyway). So Spies was asking for too much money, so what. Try to actually get a rider who has the potential to win you a championship. There is literally no chance that Caporossi or Vermeulen will become GP world champion. There is no plan for the future. Why bother running the bikes at all? As bad as 2008 was for Suzuki, I expect 2009 to be worse.

Your last premiere class GP world champion rider was from.....America!
Honda's last champion: Nicky Hayden. Instead of supporting your champion, you built your next bike around your second rider. This is the same rider who took out his own teammate, and almost threw away the championship. This does not make sense.

Suzuki's last champion: Kenny Roberts Junior. The one before that: Kevin Schwantz. Those were great days, weren't they? I bet they sold bikes too!

Your last AMA Superbike champion rider was from.....America!
Honda's last champion: Nicky Hayden. So, you took him to Europe to give the GPs a try. Result? A world championship that you didn't even appreciate. Duhamel and Hodgson aren't winning races. Your efforts in America have pretty much imploded.

Suzuki's last champion: Ben Spies, three straight years, selling bikes, screaming potential for GPs. He's riding for Yamaha next year. I'll bet it's not much more, maybe less, than he was paid in 2008. The hope is gone now.

Respect
Get some! Honda has put all it's effort into a Spanish rider that American race fans openly booed at Indy. Suzuki took the one rider they had who had a remote possibility of becoming GP world champion, and left him out in the cold. Alienating American race fans is not good for business. American Honda and American Suzuki had better wake up and do something in 2010. Their 2009 is going to be a long, boring, lonely year.

Update 2009: Honda has announced that they are pulling out of the AMA altogether for 2009. The recession is hitting hard. Ben Spies and Nicky Hayden are doing good times in off-season testing.

Sunday, November 23, 2008

Apple and the new MacBook Pro are awesome!

I have now had a MacBook Pro for a month, and I'm really impressed. Fortunately, my work bought it, stacked with 4GB of memory. I'm programming in Objective-C now. Anyway, by sheer hardware, it's impressive. The unibody is simply gorgeous. The new placement of the connectors and the SuperDrive is very clean.

After using it a while, the biggest deal has become the new trackpad. It's bigger as far as space, and the whole area is a button. The is so much nicer and e4asier than any other trackpad I've used. It is more sensitive to touch, and just acts smarter. When you're clicking and moving all day, evrything that makes that easier is appreciated.

I've been programming for, and using, Windows PCs most of my career. But I have to say I enjoy the Mac far more. Programming with XTools is a joy, though not perfect, it's as good as Visual Studio ever was. It also forces the programmer into MVC programming. This is a good thing. It's practically impossible to do "bad" programming. This explains part of the reason why Mac "just works." It's not a fluke, it's not just the hardware, though that is a major factor. In Windows-based tools, it's outrageously easy to get sloppy. In Mac, it's incredibly hard. That's not something I hear regarding Mac vs. Windows. It deserves to be a biger part of the conversation.

The last thing I want to mention is the intangible -- less stress. I find myself doing fewer steps, fewer clicks, more stability, more speed. These are little thingts that simply add up every day. I had no idea how much more work was doing inside Windows. My wife has had a MacBook Pro for a full year, and I have not rebuilt her machine once. That was something I did at least twice a year. The only time she has problems is when she's running something in Windows/Parallels. Again, it's just something I notice.

My wife has found it amusing that I have become "Mac happy." Guilty as charged. I have more reasons than most typical users to be that way. Yes, Apple products are shiny, cool, and age very well. Nut make no mistake, there is competency there, a lot of it. Considering the freefall of Microsoft into incompetence and denial, the contrast couldn't be more stark right now. I have beenj converted, and I'm not going back anytime soon. Great job, Apple!

Friday, September 26, 2008

Hurricane Ike and MotoGP at Indy


My brother and I were fortunate enough to fly out to Indianapolis to see the MotoGP. The remnants of Tropical Storm Ike made things a lot more interesting than we anticipated. Basically, it was three days of torrential rain. So in many ways, it was a unique experience, beyond the historic build-up about motorcycles racing for the first time since 1909 at Indy.

First, the weather, where we later saw the local weather man showing the center of Ike going over the city, and the racetrack. I was not surprised, because on race day, the winds changed 180 degrees from the 125s to the 800s. It was very dangerous out there, and even though it's exciting to see a crash, you really don't want to see someone get hurt. Bringing out the red flag on this day was merciful. Sheets of water, leaves, branches, trash, all flying sideways across a wet track, while these guys are going 200 mph, is a little crazy.

In spite of the weather, the experience was fantastic. I definitely want to go back. The people, obviously hurt by the economy, were really wonderful, and well organized. The number of merchandising choices was the largest I've seen at any track event. Lots of food at different parts of the track, which made things convenient when the downpour started. We had some coffee and a funnel cake (a stringy waffle snack with powdered sugar), which was really tasty. Standing under the bleachers, while the heavens opened up, you knew you were surrounded by the hard core fans, that's for sure.

As far as the racing and the track, it was really nice. Valentino Rossi won, passing Agostini's record of all-time premiere class wins. Nicky Hayden came in second, sporting a Colts logo on his helmet. Nice to see him return to form, and even nicer to know that he moves from Honda to Ducati next year. It's hard to win on a bike specifically built for the Spanish midget. Dani Pedrosa was repeatedly greeted with loud boos from the crowd, so the Honda bosses had some things to ponder about their decisions. Pedrosa is not the next Rossi. The next Rossi was not on that grid. But in the 125 Red Bull race, Hayden Gillim looked incredible for a kid only thirteen. Perhaps he's the one....

If you've never gone to see grand prix motorcycles race, give it a try, you may really like it. It's not as crowded as NASCAR, and there are a lot of passes and crashes, that are far more entertaining and close than what you see on four wheels.

Wednesday, September 10, 2008

The Mojave Insult and the Seinfeld Shoes

As with most people, the negative impression of Vista has been long, deep, and across the board. It's not sporadic, it is the vast, overwhelming majority. Even the most staunch Microsoft zealots have had major problems with it. Vista is a disaster.

I had a former co-worker, who was an ex-Microsoft employee, and he had gone back and forth between installing Vista, versus back to XP, then back. When you have Microsoft power users, experts (!), blowing 4+ hours for each Vista retry, and failing, you have a big problem. It is crazy to think that the general public will be more successful.

Enter "The Mojave Experiment." I had heard about the site, which requires Silverlight, by the way. Last night I finally saw the TV commercial. The premise is like the old Pepsi Challenge, where you try Coke versus Pepsi and pick the one you like. But this one is a "new" Microsoft OS called "Mojave," where people off the street try it and love it. They are implying that this should be compared to Vista. Then the big reveal is that Mojave is Vista, Vista is Mojave.

In other words, there is nothing wrong with Vista. It's not a software problem, it's a people problem. People are just too stupid to realize how wonderful and bug free Vista is. What a relief. Apparently, we have all suffered some mass hysteria where we imagined Vista problems that weren't really there! All it took was a controlled environment, with novice computer users, to prove it. Microsoft is denying there is a problem with Vista.

I saw this commercial with my wife, and her reaction was that it was an insult. I think her observation was spot on. This is hubris and denial on a very public and embarrassing scale. It's official: Microsoft has lost it. Microsoft is telling us we are just stupid, it's not Vista.

Later on, we saw an Apple commercial, this one where PC is the King, with robe, sceptre, and throne. The premise being that Apple store staff will help you transfer your PC files to Mac when you switch to Mac. What a contrast of message: "You're stupid" versus "We will help you, it's easy."

So the big plan was to have Jerry Seinfeld come and save the day, and overturn these Apple commercials with something hip and funny. If you have not seen the Seinfeld/Gates shoe commercial, don't worry, you're not missing anything. The message is very subtle. In fact, it is so subtle, I don't get it. Seinfeld and Gates say we can expect something pliable, mushy and gooey? We are supposed to be impressed with Gates shifting his butt? Are you kidding me?! The Seinfeld commercial is definitely not funny.

At $10 million, I originally thought the Seinfeld project may stop the bleeding on TV. Instead, these commercials confirm the bleeding and the denial are all too real. My opinion is that Mojave and Seinfeld are monumental marketing gaffs. Vista will not recover from its well-deserved reputation. The bottom line: Microsoft is in a public relations free fall.

Sunday, August 3, 2008

Book Review: Manning Adobe AIR in Action

As of this writing, there are more books on AIR coming in the fall (2008). So I was excited to have an opportunity to review a book before its release. So, many thanks to Manning and Emmy Southworth of he Salt Lake City Adobe User Group! Adobe AIR in Action is a superb book, and I would say is the first must-have book on Adobe AIR.

One of the strengths of this book is the flow and pacing, which is pretty consistent, and comfortable to follow. I came to appreciate the way Manning uses it's code samples, with numbered comments, that also correspond to the sentences in paragraphs that relate to lines of code. It's practically impossible to get lost, and that's a confidence boost for the reader.

Another trait of the "In Action" books is the concept->example formula. Easier said than done, this book is a fine example of really pulling it off. I never felt overwhelmed. The sample applications here are refreshingly concise. Many books have examples that have a lot of code that wanders off a little, but not this one. One of the applications is using YouTube APIs, where there's enough dazzle, without extra fluff. The sample applications here stuck to the point, and didn't waste my time.

So what are the highlights of the book?

When it comes to standard Flex/Flash RIAs, there's really no need to consider anything outside the browser. This book concentrates on desktop-oriented programming, the things you need to know. I thought the section on menu types and how they work across OSes was very thorough. They cover many of the gotchas of window types, and things that we tend to expect from a windowed application as far as behavior.

File system concepts, like reading files, reading directories, reading streams, writing files, all are handled well. Excellent examples of all. The copying, pasting, and drag and drop are covered equally as well. The material always feels complete, not rushed.

The database section concentrates in AIR's support for SQLite, and again gets to the implementation in a direct way. There are obligatory pages going over the basics of SQL, and a nice explanation of how to create a database and tables. They show a relational junction table as well. However, I am always a little sad when databases are discussed, and normalization is not. I know that AIR application databases are relatively small in size. But...Normalization is THE most important thing to know - truly know, when building any database. It's a serious gotcha.

I enjoyed the Network communication chapter, which covers HTTP and other network connectivity monitoring. There's only so much to show here, whereas a Flex book may show a lot more about the actual communications.

The HTML in AIR chapter could easily be applied to a normal Flex RIA. It's always nice to see how you can have Actionscript and Javascript communicate via the DOM. There is no shortage of good examples, and they don't disappoint. Obviously the authors were very excited about it. However, the parts that I found most interesting was loading PDF, managing caching, cookies, authentication, and sandboxes. I was really pleased they included this material.

This book has the best explanation of installing with badges and updating that I've read so far. It's easy to read, and takes away any intimidation. If only all desktops were this easy! They finish up with launching an AIR application via file type or browser RIA (Flex or Flash). This functionality of the AIR runtime is really appreciated by those of us who've done desktop development, and done it manually.

Summary

Adobe AIR in Action is a great book that is very concise in its concept descriptions. The examples are top notch, well explained, and easy to follow. They cover the basics of what a desktop application needs: windows, menus, file access, clipboard. They cover using the SQLite database and network connection well. And the installer and automatic updates features of AIR are simple and complete. The best way to describe this book is concise and competent. If you are a web developer, doing a desktop application for the first time with AIR, this is a book that will really help you. For any AIR developer, this book is easily a strong reference/sample book, that will not collect a lot of dust. It's that good, very usable.