Tuesday, January 6, 2015

Iconic: A Photographic Tribute to Apple Innovation, Part II

How do you innovate on a book? Sure, you can update the content, but it's still a book. You could always make a coffee table book about coffee tables that turns into a coffee table, but that's fiction, not fact.

About a year and a half ago I reviewed a beautiful book, ICONIC: A Photographic Tribute to Apple Innovation. The author, Jonathan Zufi, who is also the creator of The Shrine of Apple has published a collection of over 650 unique Apple photos. His book included not only virtually every Apple product, but prototypes and packaging too. Zufi recently republished an updated book with more than a dozen new pages and photos. But that, alone, wouldn't be enough to make it innovative. His latest edition is ICONIC: The Ultimate Edition. This magnum opus is delivered in a clamshell case with a custom printed circuit board (PCB) designed to pulse an LED embedded inside the case. The result is that the LED in the case cover respirates like a sleeping Apple computer when the book case is picked up.

What makes life interesting is the story behind the story. In the case of The Ultimate Edition, it's the elegantly designed and incorporated PCB that makes it uniquely interesting. Unique in the truest sense of the word.

The circuit is powered by the high-performance, low-power Atmel 8-bit AVR RISC-based microcontroller which combines 1KB in-system programming flash memory, 32B SRAM, 4 general purpose I/O lines, 16 general purpose working registers, a 16-bit timer/counter with two pulse-width modulation channels, internal and external interrupts, programmable watchdog timer with internal oscillator, an internal calibrated oscillator, and 4 software selectable power saving modes.

In true fashion, ICONIC: The Ultimate Edition is designed with the tender loving care and attention to detail only seen in Apple products.

Saturday, December 27, 2014

Questioning Steve Jobs

At Apple, the engineers are the talent. They're the ones who innovate. And, thanks to great designers, it's turned from engineer-ugly to intuitive elegance. All the consumer facing products used to go through Steve. If you ate lunch, every day, at Caffè Macs you'd probably see Steve eat there once or twice a week.

Steve once sat one or two tables away from me with a developer. It surprised me how quiet Steve was. He simply asked the engineer questions and then listened, very closely. It was a one-on-one brain storming session about integrating services across different products. Steve would ask, "What if we did this?" or, "How would that look?" Steve focused on his conversation and was immune to the casually intense glances from passerbyers.

I worked as a software engineer at the Apple Online Store. We'd have an annual online store summit that lasted a couple days, usually in Apple's Town Hall auditorium. The high point was if and when Steve would speak to us and take our questions. Just before lunch, the last year I worked at Apple, we were told that Steve would be holding a Q&A session.

Excellent! This was spring of 2007 and the iPhone had just been announced but it wasn't yet shipping. The iPhone was on everyone's mind. When Tim Cook spoke to us at our summit he whipped out his iPhone, for a moment, and said, "This is so cool!" Our mouths watered.

Since Steve would be meeting with us, this was a perfect time for me to ask him about iPhone marketshare. He had forecast, during the Macworld Keynote, a few months earlier, that iPhone would sell 10 million units the first year. This seemed a bit high, to me, since it would only be available in the U.S. in 2007; and only on Cingular which had 58 million subscribers. To my ear, it sounded like Steve was expecting one out of six Cingular subscribers to shell out $499 or $599 for an iPhone.

One secret to corporate success is to never embarrass your boss. So, during lunch, I gave a heads up to my boss and the director of the Apple Online Store that I'd be asking Steve a question. We chatted about it, briefly, and it was a perfectly sensible question. So, I was cleared to ask away.

Just before Steve entered Town Hall we were told not to ask any questions about future products. We were also told that we'd have to give him a standing O when he was done with the Q&A. No problem. Steve walked in to the Town Hall. This was a rare time that I've seen Steve take the stage from the back of the room, rather than from backstage. He spoke for a little while and then it came time for questions.

One of my coworker engineers asked Steve a question that stumped him. Or, perhaps, he didn't want to answer it candidly. "Steve, what companies do you admire most?" Steve thought about it for a long, silent, half a minute.

"I don't know. I'd have to think about it," Steve answered.

I'd really like to know what he was thinking. Was it simply that he couldn't think of any companies he admired or was he worried that his answer would be made public?

Then it was my turn to ask Steve a question.

"Steve, you mentioned during your iPhone Keynote that Apple would sell 10 million iPhones the first year. That would mean one in six Cingular customers would be using an iPhone. That seems like a lot of marketshare for the first year," I said.

Steve simply clarified what he said during the Keynote. The 10 million unit statistic was at the end of the first full year of sales – in other words, at the end of 2008, not 2007 – and, by that time, Apple would be selling the iPhone in Asia, with other wireless carriers.

I doubt that his answer could have been any less climactic for me. Questioning Steve is easy when he's right.

Of course, Steve's 10 million iPhone estimate was a bit low. Better to under-promise and over-deliver. By the end of 2008, Apple sold more than 17 million iPhones – 70% more than his initial estimate.

Mobile Web Rendering Standard

The web needs a simple de facto standard for mobile vs. desktop web rendering.

When someone tweets out a link from their smartphone (mobile web), it looks terrible if I click their mobile link in my desktop browser:

Just like hard or soft page breaks in word processing, there needs to be a simple standard for web servers to render an HTML page based on the user agent or force a particular rendering when desired.

Blogger makes it simple and obvious based on the URL query string:

Render based on user agent:

Force mobile, regardless of user agent:

Force desktop, regardless of user agent:

This technique makes it easy for me when tweeting out links. Much easier than changing http://m.example.com to http://www.example.com to see if I've figured out a particular web server's URL naming scheme. I understand that m. and www. are different host names which makes it easier for load balancing, but there are ways to manage that with load balancers, etc.

PS – My other pet peeve is a mobile web page that doesn't allow zooming. What's a user to do when the fine print is too small to read?

Tuesday, December 16, 2014

Looking for God

In the dead of the night, seemingly simple soft sounds travel far. A fallen leaf moving across concrete in a quiet breeze or rustling tree branches as a gentle rain falls upon them. While I'm a heavy sleeper, something out of the ordinary will wake me up with a feather's touch.

Last night, I slept with my bedroom window open. This morning, at 4 AM, I awoke to the gentle rustling of plastic bags about 50 feet away. It's a sound I occasionally hear. I immediately knew it was a homeless person dumpster diving. I went outside and asked him what he was looking for. He stared at me for a moment and, in an annoyed tone, he said, "I'm looking for God." I told him that he should move along. I went back inside and he was on his way.

After he left I began wondering what he was really looking for. The seemingly obvious answer would be recyclables. Yet he wasn't going through the bottle and can bin next to the dumpster, nor did I hear any clanging or banging of glass and metal. He was simply opening plastic bags, mostly, if not all, bags of Starbucks trash. Perhaps he was looking for food. But there are better restaurants, nearby, to scavenge.

He was definitely not looking for hard-goods, and he was a pro at being as quiet as possible. What could he – as many I've heard before him – be looking for?

Friday, December 12, 2014

iOS Spotlight Bug

Without noticing it, I've installed well over 100 apps on my iPhone. Obviously, the ones I use most frequently are on my first home screen with a couple stragglers on the second screen. Occasionally, I need an app that's buried somewhere on the other 15 screens. To find those apps, I, like most everyone, pull down on the home screen to reveal the Spotlight search text field.

Unfortunately, after most iOS updates or after restoring a phone from a backup, Spotlight seems to stop finding apps until I open the app I'm looking for, for the first time.

This is a reproducible problem that I've noticed for at least a year. Here's what it looks like along with my workaround.

1. Confirm that the Applications option is checked and it's at the top of your Spotlight search setting.

2. Search for the app that Spotlight can't find. In my case, I was looking for my little-used eBay app. Sure enough, it didn't show up in Spotlight.

3. Search for the app in the Apple App Store. The App Store knows if you've already installed an app so that you don't need to redownload it. If an app is already installed on your iPhone, the GET or $x.xx button will say OPEN. Tap the OPEN button and the App Store, which is hundreds or thousands of miles away, will find and open the app that Spotlight, running on your own phone, couldn't find.

4. Once I've opened the app and then closed it, it magically appears in future searches. As a matter of fact, once I've gone through this exercise it seems that Spotlight is now primed to find other apps too.

Postscript: I've also seen a similar issue when searching for people or text in the iPhone's Messages app, but I haven't found a work around for that, yet.

Friday, December 5, 2014

Super Stellar Service

As a consumer, nothing makes me happier than superior customer service.

Yesterday, I effortlessly exchanged an iPhone case at my local Apple Store. When I was done with the exchange, the Apple employee took me through the iPhone Apple Store app. This app allows customers to self-checkout items rather than hailing an Apple employee to process the transaction. This works for all their products except for the two serialized items they sell on the floor: Apple TV and the wireless basestations. That's amazing. As far as I know, it's the only place where customers can self-checkout without supervision. Obviously, that makes pilferage easy, but Apple doesn't seem too worried about that.

This afternoon, I caught a lift with a Uber driver from Ethiopia. Like most San Diego Uber drivers from East Africa, my driver was a former taxi driver. Since I used to live in East Africa, we had a great rapport. I couldn't help commenting how nicely his iPhone 6 was connected to his car vent. He popped it off and gave it to me so I could have a closer look. It was a Kenu car vent mount that snuggly held an iPhone without having to remove the case.

This evening, I took a trip back to the Apple store and bought a Kenu case. Of course I checked myself out. It was my first experience with Apple Pay and I was hooked. On the way through Bloomingdales I bought a Brooklyn t-shirt, that caught my eye, using Apple Pay and that was dangerously easy for this impulse purchase. Before leaving the mall I used Apple Pay, for the third time in an hour, at The Container Store. That, too, was a breeze.

The Apple Pay transactions happen so fast that I almost missed them except for the part where I had to sign; after all, it's still a credit card transaction. The cashier at The Container Store told me a previous customer said that the store receipt had the wrong last-four credit card digits. I took a look at my paper receipt and, sure enough, the last four digits didn't match my credit card. But, then it hit me that Apple Pay generates a unique, one-time, credit card number for each transaction.

Service with a smile in the blink of an eye. What more could I ask for?

Tuesday, December 2, 2014

Uploading Large Files to S3

I've downloaded and tried out quite a few AWS tools since I started using Amazon's web services in 2007. Originally, S3 had a 5 GB file size limitation which was increased to 5 TB four years ago. Unfortunately, all the S3 tools I've downloaded are limited to 5 GB. The challenge appears to be that any object larger than 5 GB requires the use of the multipart upload API and none of my tools can handle that.

Today, I needed to upload a 7.35 GB file. I was almost ready to give up after trying a few of my desktop tools along with my plug-ins for Firefox and Chrome. Then I got the idea to simply log into AWS with Safari and use their web based management console (duh). That, along with my speedy fast home Internet connection, did the trick. It was such a simple solution that I almost overlooked it.

Update: One bit of funkiness is that the tools which can't handle files over 5 GB can't properly report an object's size, although they do seem to be able to successfully download the files.

Free Music

Ever wish that you could listen to free background music like you hear in a cafe? It turns out that many mom and pop cafe owners simply stream multi-hour long music from YouTube. A bargain at twice the price.

Friday, November 28, 2014

Black Friday

What was I doing just shy of the Mexican border at midnight? Because, if you don't shop on Black Friday, then the terrorists win, I joked.

I shop for clothes once or twice a year and Black Friday has great deals. I didn't do too much planning. The outlet mall near the US/Mexico border opened at 6 PM, yesterday (Thanksgiving Day) and they'll close tonight at 10 PM (Black Friday). Yes, that's 28 hours straight they'll be opened.

A couple years ago I went to the outlet mall by Legoland when I was living in Carlsbad. It was simpler, there, since that mall was just a few miles from where I lived. At the time, they opened at 10 PM and stayed open for 24 hours. Now, they've obviously stretched that by four more hours.

The worst part about the outlet mall in San Ysidro, tonight, was getting into and out of it. From the freeway, it's a single lane in each direction, so it was backed up, up the offramp and onto the 5. After watching some people walk past me faster than the queue of cars was moving, I decided to park on the street and walk the last half-mile. That also saved me the hassle of finding a parking spot once I had actually made into the parking lot. Walking turned out to be a good decision with the exception of breathing in car fumes.

Obviously, the outlets were packed. Even Starbucks had a line out the door; so were lines at some other stores. Luckily, I was shopping at Brooks Brothers which isn't exactly known for being  trendy. There were no shortage of pooped families, plopped down on the benches with half a dozen shopping bags apiece. What did surprise me, though, were how many people were dragging large luggage bags to pack up their booty. That's fairly smart for those who had to walk back across the border into Mexico. I only had to walk half a mile and my fingers were getting a little sore carrying a couple shopping bags and a coat hanger. 

Monday, November 24, 2014

Yes, Dave, Everything is Broken

Everything is broken. I said that in September and Dave Winer said it yesterday.

Ok, it's not quite everything, but it sure feels like it when your simple workflow comes screeching to a halt.

Software engineering is about managing complexity. It seems the level of personal technology has exceeded our ability to reliably manage it.

I'm typing this on my two-year-old iPad with Apple's Bluetooth keyboard. Normally, I use my MacBook Air, but today I wanted to focus on writing. It's too easy to go down a rabbit hole on my laptop. With just my iPad and keyboard, it's as close as I can be to being offline while being online. It minimizes my distractions.

Unfortunately, my afternoon is failing miserably. I can't get my iPad to keep its Bluethooth connection with my keyboard. On top of that, I can't respond to an incoming text message even when the keyboard is connected. One could make the case that it's a dying battery in the keyboard. (How would I know if the battery is dying? There's no way to check on the iPad.) But that doesn't explain why, when the keyboard is connected, it doesn't allow me to respond to pop-up text messages.

That frustration, added to the fact that Apple's Continuity fails me 50% of the time, is too aggravating. I hear my iPhone ringing, just a few feet away, but I can't answer it on my Mac half of the time. Oh, have I mentioned that the "Check Spelling While Typing" sometimes flags misspelled words now, and sometimes, at an arbitrary point in the future, it will suddenly flag a word that's been misspelled for hours? And don't get me started on the OS X dictation feature which is sometimes unavailable for no discernible reason.

So, I gave up trying to write in Pages on my iPad, this afternoon, and decided to blog here for a few minutes. Prose will have to wait.

And this isn't a case that all new technology has bugs. It's that the level of complexity is getting more than can be managed. My keyboard used to connect to my iPad, and stay connected; and my mouse used to do the same with my Mac. Now, both are hit-or-miss. Trust me, I clearly remember how elegant and bug-free the first iPhone was, yet how bad OS X 1.0 was.

Could it be turnover at Apple? I wonder if the lessons learned, from 15 years ago, are being repeated by the new software engineers at Apple?

Technology is suppose to move out of the way to enable productivity, not hinder it. But, I guess that's my problem to deal with. Perhaps I should focus on the positive, like the fact that I can count on one hand the number of times I've had a kernel panic over the last few years.

Happy Thanksgiving.