Steve Jobs 1955-2011

October 5th, 2011

Steven Paul Jobs 1955-2011

Today, Steve Jobs, an amazing man in his own right, and an undisputed visionary, passed away at age 56. He led an amazing life, did amazing things, and created several amazing companies (NeXT, Pixar, Apple). He, more than many others in history, has done more to positively influence people’s lives and livelihoods.

I am selfishly sadden that I never got to personally meet Steve, even though I have admired him ever since I brought home my first Apple product, an Apple ][+, nearly 30 years ago. That purchase, earned by a summer of construction work during the summer between my sophomore and junior year of high school, led me to the path of developing software as a profession.

When I lived and worked in Sunnyvale, in the early 1990’s, I use to ride my bicycle up Foothill Expressway and into Palo Alto (usually stopping at Stanford with a book to read and soak in some of the sun). Often, before heading home, I would ride into the neighborhoods of Palo Alto, knowing that Steve Jobs had his house somewhere there. I was hoping that I might have a chance encounter with him, or at least see his house from the street. I never did, and having seen pictures of his house, I’m pretty sure I was in the wrong neighborhoods, but it sure was fun trying at the time.

Other people who may or may not have made their marks on the world, including noted civil rights leader Rev. Fred L Shuttlesworth, died on the same day. This doesn’t mean that Steve was better than these other people. We could all learn from their lives. Steve gave us the gift of showing that hard work, breaking the status quo, and doing things a bit differently is a Good Thing.

May his family find comfort somehow in knowing he is no longer suffering, and is at peace. May the world come together and embrace his propensity of creative thinking and attention to detail.

Rest In Peace, Steve. You inspired me for 30 years, now we continue forth and carry your message into the future.


“Stay Hungry, Stay Foolish”

WWDC 2011 Keynote

June 6th, 2011

No, I’m not there. 🙁 As of the time of this writing (9:30am WWDC time), the energy is palatable for this year’s event even 600 miles north of San Francisco (one of my all time favorite places to be) up in Portland.

We already know that Lion (Mac OS X 10.7) will be “announced” (it already really has been, just not the minutia), iOS 5 (same…it exists, no real details), and iCloud (more heavily covered…ie streaming music and a music locker, but free MobileMe services too?). What we don’t yet know is what the “Just one more thing…” is all about.

We know there is something afoot due to this image taken inside Moscone West this morning: (image no longer available)

I originally speculated with @CocoaGeek that this might just be the banners seen already that read “Lion + iOS 5 + iCloud = WWDC11”. However, as @CocoaGeek correctly pointed out to me, this doesn’t make a lot of sense since those have already been announced, even if no details have been given.

So, at 10:00 am (WWDC time) we’ll begin to know that all this is about. All I know is that 2011/2012 is going to be very, very good years to be an Apple developer.

Will update as more information flows in….

10:00 am update…

Mac OS X Lion “announced’ along with 10 new features (out of a claimed 250) being showcased:

  1. Multitouch gestures with trackpads
  2. Full screen apps (meant for smaller screen laptops/devices)
  3. Mission Control (kind of like ExposĂ© + Spaces). A simple gesture gives you a bird’s eye view of everything on your system.
  4. Missed this one…will add it once I can get the skinny on it. Ah, I guess it was the Mac App Store. Nothing terribly new, other than it has become the number one channel for buying PC software.
  5. Launchpad, a new launcher a’la iOS Springboard for the Mac OS. Apparently also employs a sandboxing scheme.
  6. Resume (Nice!) allows you to return to the exact state of the app and its documents
  7. Auto Save (enough said)
  8. Versions… version control for everyone (I wonder if it is based on Git? :-)). Time Machine for all your documents. Who doesn’t want/need that?
  9. AirDrop (Yes!) peer-to-peer WiFi based network (what?! No bluetooth love!?)
  10. with updated UI and other enhancements.

Available only via the Mac App Store, and only $29.99!! Wow!

10:34 am update…

OK, that’s the 10 features they chose to show-case. Looking forward to hearing what is in iOS 5. iCloud being saved for last, so I expect great things. Plus, don’t forget our “One last thing…”

iOS 5 Top 10:

  1. Notifications. Yes! This was a mess and very intrusive. Now can swipe down from top to see current list of notifications.
  2. Newsstand, iBookstore for magazine and newspaper publishers. Nice idea. I wonder how many Indie developers this impacted?
  3. Twitter integration! OK, wow. Explains a few moves made by Twitter over the past few months, particularly with authentication and third-party app support. Again, how does this impact the Indies?
  4. Safari (updated). Reader support (as can be found in Safari 5 for Mac), very nice. Reading List, for saving for later. Tabbed browsing, on the iPad anyhow (Excellent!).
  5. Reminders (Hmmmm… Wooly Tasks killer I think). Lots of interesting features that I had also thought of adding, but Apple has 1000s of more engineering resources than I do, so they beat me to the punch. Ah, the nature of the business. We’ll see.
  6. Camera (updates). Lots of enhancements, mostly in making taking a picture faster and easier. Using the up volume button to take a picture will be really nice. Rule-of-thirds guides. Built-in editing of photos.
  7. Mail (updates). More composing and editing options, in particular, rich-text formatting (YES!). Introducing a new keyboard layout that is thumb-centric and available system-wide.
  8. PC Free…no more tethering!
  9. Game Center
  10. iMessage, new messaging service for all iOS devices. Yay! iChat for iOS

AirPlay mirroring.

iTunes syncing wirelessly.

Available Fall 2011.

11:20 am Update…

iCloud. The Digital Hub that Steve Jobs talked about in 2001 has now moved to “the clouds”. iCloud stores your content “in the cloud” and wirelessly pushes it to all your devices.

MobileMe “wasn’t our finest hour”, but “we learned a lot”. MobileMe is dead. iCloud will subsume all the services of MobileMe, but everything is rewritten from the ground up, and the best news of all…

…it’s FREE.

iCloud is invisibly integrated into apps that need synching of data, such as Mail, Contacts, Calendar, etc. Wireless back-up (a’la “PC Free” feature above). Also backup purchase of iBooks, music, apps, camera roll (on iPhone), etc.

iCloud also has a feature called “Documents in the Cloud” for syncing Pages, Numbers, and Keynote documents. For developers, there will be an iCloud Storage API. And, it will work with PCs as well.

iCloud allows photos taken on your iPhone to automatically be synched onto your iPad. No more needing to tether, sync, sync, sync, … Up to 1000 images stored on your iOS devices, and anything you want to permanently keep, you just need to move into an album. Photos remain for 30 days, so grab them or lose them. There is a Push Photo Stream builtin to camera rolls which is where the syncing takes place.

iCloud is WiFi only due to immense amount of data being pushed. When carriers can reliably offer 4G or greater, then I’m sure it will move to the celluar network.

Finally, there is now iTunes in the Cloud. Buy a song, sync with all devices, automatically.

10:50 am update…

Just in time for “One more thing…”

iTunes Match. For those songs that you ripped from your personal CDs. iTunes will scan your music for non-iTunes purchased music, and voila, your songs are automatically in the cloud. No uploading needed, if they already exist in the iTunes Store. For the rest, they are uploaded. This is the rumored “Music Locker”, and it costs $25 a year (but if you had MobileMe, you still $74 ahead).



Why Wooly Beast Software exists

June 6th, 2011

Seth Godin hits the nail on the head with this blog piece, “The taskmaster premium”.

If you are not following Seth Godin’s blog, why not? He’s got a lot of good things to say that every entrepreneur and startup should be taking note of.

Static Libraries woes with categories and iOS

May 20th, 2011

Like most developers, I assume, I have a lot of utility functions and category methods that I rely on from project to project. Importing all those files into each project, while allows customization, does tend to be tedious, error-prone, and a bit amateurish (IMO). So, I created several stand-alone libraries for Core Foundation, Core Data, and UIKit “extensions”. Simple, no big deal. Just don’t forget to add -ObjC via the Other Linker Flags to your Build Settings of the project that is linking to the static libraries. (See Apple’s Technical Q&A QA1490).

Unfortunately, there exists an issue with the linker where this linker flag doesn’t work as advertised in certain environments (iOS and 64-bit Mac applications) when you have only categories defined, but no classes. When you build your application, you not get any errors about unrecognized categories (assuming you have defined and exposed them via #import header correctly).

When you merrily go about running the application and it tries accessing one of these categories defined in a static library, you get an exception thrown that reads a bit like:

2011-06-04 08:34:50.823 <App Name> [24476:207] +[<Class> <method>:]: unrecognized selector sent to class 0x68e00

In this case, I was calling a class method, but instance methods will be affected as well. Also, if it isn’t obvious, the class address will be different from session to session.

So, the solution for now is to replace -ObjC with either -all_load or -force_load.

Using -force_load requires a path to the archive (static library), whereas -all_load is a shot-gun approach for all archives linked into the project. Each forces the linker to pull in all object files from the archive(s). This is not perfect in that it would be nice to take advantage of the linkers ability to strip out unused symbols, among other potential issues (such as forcing loads of other symbols from other, possibly unknown, archives).

As far as I can tell, there is no harm in defining in Other Linker Flags both -ObjC and either -all_load or -force_load, nor do I see an advantage to it. -all_load or -force_load pretty much override -ObjC entirely.

Xcode 4 and Sharing Archives

April 19th, 2011

Based on discussion in

In Xcode 3, as it turns out there is bug when building projects that have dependencies on external static library projects. When these projects are pulled over into Xcode 4, this issue manifests itself in the inability to share an archive properly as an .ipa file. Instead we get a .xcarchive file. Also, attempting to validate the archive gives us the following error message:

“<AppName>” does not contain a single–bundle application or contains multiple products. Please select another archive, or adjust your scheme to create a single–bundle application.

The solution is modify the “Skip Install” setting of each static library to be set to “Yes” instead of the default “No”.

The bug in Xcode 3 is that even though “Skip Install” is set to “No”, it seems to be ignored, and the output is not placed in the usr/local/lib directory within the archive.

March 2011 Mobile Portland

March 29th, 2011

Last night I attended the Mobile Portland meeting held the fourth Monday of each month. This particular meeting was entitled “Mobile as a Platform for Change”.

Originally, I think the topic was to be solely about the new website that was developed by Uncorked Studios (great name!), and presented by Marcelino Alvarez. The website was developed to help track the recent increases of radiation being spewed into the air by the mostly destroyed Fukushima daiichi nuclear plant after the March 11th, 2011 9.0 earthquake in Northern Japan.

Later, Renny Gleeson, Global Digital Strategies Director at Wieden+Kennedy, as added to the lineup, talking about another aspect of mobile for change from his perspective of working with some of the largest consumer companies in the world.

Both had interesting topics and presentation, but honestly, Renny’s impressed upon me the most. Although, it seems a majority of his talk centered around Coca-cola (ah, refreshing) than any of the other brands. But, aside from this mono-corporate viewpoint, his talk was really interesting and thought provoking.

Did you know you can power a cell phone using a coca-cola for 5 hours? It is a bio-battery, and a concept prototype was created by Daizi Zheng. Perhaps the best use of that sugar-water. Although it begs the question, can a cell phone develop diabetes?

Nokia cell phone being powered by Coca-Cola.

Daizi Zheng's concept phone


In Africa, a doctor wanted to figure a way to keep vaccines from spoiling from lack of refrigeration while transporting them to other towns. He noticed that every day, a Coca-Cola truck came to make deliveries. These trucks were large refrigerators on wheels, and kept a consistent and timely distribution schedule. After much persuasion, he figured a way to piggy-back onto these transports by developing boxes that fit in the empty spaces between the bottle necks in the crates. ColaLife was born. That was thinking inside the box!


2 billion servings of Coca-cola are consumed a day! Aside from the obvious threat to our health of drinking that much sugar water, the possibilities of spreading messages of good and hope on those containers are limitless.

The take-away messages was that social change and social good can come from large corporations, if only they can be convinced to harness the power of their established networks and incredible amounts of available cash (many with more money than the GDP of a lot of countries). However, more often than not, as demonstrated by the first two points, the ideas of change come from the outside, and rarely from the inside.

Why am I discussing Coca-cola in a blog about mobile software and my company?

Because, another number was tossed out.

5 Billion.

That is the number of mobile devices in active use. Much like a simple drink can change lives (and not necessarily by actually drinking it), the mobile phone also is providing amazing opportunities for social change, and not just a way to call someone or check your Twitter feed. It is already becoming a game changer in many of the Northern Africa countries, allowing the people to report the truth, and hopefully drive democratic reforms in those otherwise totalitarian nations.

Something to think about. After all, that’s what going to Mobile Portland is all about.

Software Development

March 28th, 2011

Developing software is a combination of art and science. The science is mostly math, and of that, mostly logic and set theory. Although, recently I was able to brush off my Mathematics degree to apply a bit of linear algebra and trigonometry to develop a pretty cool iPod-like control for use in GigBook (published by Deep Dish Designs LLC) and a future update of Wooly Wind Chill. More about that at a later date, hopefully not too far in the future.

The art aspect is both the visual (graphic) aspect of the product, and having the discipline and understanding that sometimes there is too much of “good thing”, when in reality “less is more” fits the bill better. The art aspect also comes in when finding elegant solutions to tough problems that the user/customer will find pleasing. In a nutshell, there is a real “art” to creating compelling solutions to interesting problems.

On top of that, there are the thousands of details to manage. Literally. In a large(r) iOS project,  there are thousands of lines of code to (mostly) remember, hundreds of logic paths, hundreds of assets in the form of source files, images, sounds, resource files, etc. On top of that, no software is bug free or 100% perfect, so managing the bucket of bugs, as well as identifying and tackling improvement changes (regardless if the user sees them or not), becomes an art unto itself.

Spreadsheets, bug databases, version control, and good old fashion hand written log books become essential tools to tame this tide of data and information. Again, the science aspect, if you will.

So, if things appear to be moving slowly, know it is not just because developing software is (often) hard, it also requires juggling a lot of little things, getting them put in the right place, and keeping them there from day to day without “dropping” any of them.

Like Dr. Hathaway says in Real Genius, “We’re not making cheese sandwiches!”


January 22nd, 2011

Besides writing software of all sorts, another fascination of mine since I was a kid has been robotics. Recently I finished reading the book “Almost Human:Making Robots Think” by Lee Gutkind. The book was written during a period spanning 2003 to 2005, and published in 2006. Before iPads or even iPhones being sold! A lot has happened in the field of technology since the publishing of the book, and I can only imagine what strides they have made since then. It would be interesting to go and find out what new is going on at the Robotics department in CMU, and how much further they have progressed in their efforts since then.

One interesting take-away was the concept of in-experienced, and slightly naive, yet bright (usually young) individuals tackling really hard problems with no apparent sets of preconceived notions of what isn’t possible. I think it is a valuable lesson to balance applying past experiences plus keeping and almost child-like view of a problem to come up with innovative solutions.

One other thing that struck me was how disorganized and uncoordinated the efforts to develop the hardware and software was. Part of the problem is that no one really knows what is going to work, so both the software and hardware built by trial and error. The problem was that so often they ran into a lot of software integration problems. Not necessarily with interfacing with the hardware itself, but with coordinating with other software modules with the robot. I got the feeling, and it could be from just the way the book was written, that not a lot of real engineering went into the software. It truly was just hacked together with varying levels of quality and success.

I recommend the book for anyone who finds the field of robotics at all fascinating. I’m sure in a few short years, everything they attempted to accomplish will seem almost basic and obvious as they move forward coming up with new amazing technology. But ultimately, as usual, software is key.

Apple’s Magic Trackpad

October 20th, 2010

After completing my contract project for version 1.0 of Deep Dish Design’s iPad product, my business manager/advisor gave me permission to make some capital improvements. Namely, to invest in a new input device… Apple’s Magic Trackpad.

Not a purchase of necessity by any  means.

Actually, as nice as the trackpad is on my MacBook, I’m not a big fan of using it unless I happen to be traveling light, or forgot to bring a mouse (usually the case).

But, guess what? I have really enjoyed using the Magic Trackpad. I have yet to reach for my well used Magic Mouse. I think part of it is that I don’t have to reach in front of the keyboard to actually use it. It sits to the side, wherever I want it, and is ergonomically “just right” in term of reach and placement. It also seems less “twitchy” than the Magic Mouse when it comes to zooming in Google Maps or dynamically resizing content in a browser window. Plus, no false zooms like I get with the Magic Mouse – so, incredibly annoying.

Definitely a worthy investment so far.

I need to…

October 18th, 2010

…write more often.