All posts in “Apple”

Steve Jobs, Hero

Steve Jobs, Hero

He didn’t just create new industries, he destroyed them. Steve Jobs has had a deep impact on me, forever changing the course of my life. When my family got an Apple ][e, I was hooked. I remember the day I first saw the Macintosh and my jaw dropped to the floor. There have been many other moments in my life that I remember with distinct clarity, realizing what I was looking at was the way of the future. It was almost as if Steve was living five years ahead of everyone else. Being taken away at such a young age is a tragedy and the world will suffer for it.

I’ve seen two of his keynotes, one of a demo of Aqua which literally brought me to tears. I’m glad I got a chance to see him in action, but am kicking myself for not talking to him when I had the chance. I was on the show floor of Macworld Tokyo, in Apple’s sprawling booth, and I look to my right to see Steve Jobs and Phil Schiller just standing there. They were taking in the scene of the booth and nobody was paying them much attention, just the two of them. I felt like I didn’t want to invade his privacy so held myself back. The same thing happened when I bumped into Jony Ive, but that’s a different story.

Oh, how I wished I could relive that moment. To at least thank him for the wonderful impact he’s had on my life. Steve Jobs will me missed immensely.

Updating Bundles for Compatibility

I’m going to port some more of my technical articles from tumblr over here. This is an oldie but goodie as I still get a lot of traffic for it. Original post is here.

Sometimes when new versions of come out, the plugin architecture isn’t always backwards compatible. To disable plugins that could potentially crash, a plugin verification occurs via a PluginCompatibilityUUID check.

So, you need to (WideMail is used in this example):

  • add the Message.framework PluginCompatibilityUUID to the SupportedPluginCompatibilityUUIDs of each plugin
  • add the PluginCompatibilityUUID to the SupportedPluginCompatibilityUUIDs of each plugin

Add the Message.framework PluginCompatibilityUUID

  1. Open up /System/Library/Frameworks/Message.framework/Resources/Info.plist and search for PluginCompatibilityUUID. In 10.6.5, this is 857A142A-AB81-4D99-BECC-D1B55A86D94E.
  2. Open up ~/Library/Mail/Bundles/WideMail.mailbundle/Contents/Info.plist and search for SupportedPluginCompatibilityUUIDs. Add a new string to this array with the value 857A142A-AB81-4D99-BECC-D1B55A86D94E.

Add the PluginCompatibilityUUID

  1. Open up /Applications/ and search for PluginCompatibilityUUID. In 4.4, this is BDD81F4D-6881-4A8D-94A7-E67410089EEB.
  2. Open up ~/Library/Mail/Bundles/WideMail.mailbundle/Contents/Info.plist and search for SupportedPluginCompatibilityUUIDs. Add a new string to this array with the value B842F7D0-4D81-4DDF-A672-129CA5B32D57.


This is a kluge and there is a reason Apple requires this check. It’s best to wait until the official developer releases an updated plugin.

A US iPhone 4 In Japan

This post originally appeared on my Tumblr.

There seems to be a super elite club that understands how to turn a US iPhone 4 Japanese. This is an unfathomable concept to 99.9% of the people you’ll talk to, but it is indeed possible and there are several solutions. I’ll run through the options I know of, but first let me explain my situation. I have an iPhone 4 through AT&T on Reduced Rate Suspension. I don’t mind unlocking my phone if I have to and I’m only here for a couple months. My options:

  1. Get a SIM card.
    There are several ways to do this: SoftbankJapan Communications or a disposable prepaid phone from the airport.
    Many caveats here. Softbank only supplies SIM cards for the iPhone 3GS, which is not micro so will not fit into the 4. You’ll run into the same situation with the airport disposables. Grab some scissors and trim it down to size.
    Japan Communications runs on the Docomo network but is a second class citizen. You’ll get a max 300Kbps up/down unless you are using one of the whitelisted applications. This is the theoretical rate, so you’re gonna go through hell at these speeds. Also, the Softbank Sucks site has a lot of good info.
  2. Get a portable wifi device.
    There are tons out there, but most are going to require a two year contract. Softbank offers the Pocket WiFi with a “contractless” option, but you basically pay for a year in advance. I was able to snap a pic of these prices while the sales guy told me I couldn’t take any pictures. eMobile and other companies offer the same Pocket WiFi for various prices. Instead of sending you off to various pages in Japanese, take a look at w00kie’s iPad 3G and Pocket WiFi alternatives in Japan. There are even pricing charts.
  3. Get on a wifi hotspot network.
    People are very paranoid about wireless here, so you won’t see very many open wifi networks. I’m constantly searching, but it’s ridiculous how locked down it is. In the US, I have access to g/n fiber networks left and right. Here, nothing.
    But you can pay to join a national network like Boingo. There are a ton of options which I won’t go over here, but this is a good link for a run down on the more common services – WiFi service in Japan. There is also a site dedicated to free wifi locations (Japanese only).

So what did I choose? Nothing, yet. I’m hoping to get feedback on this post about the magic fourth option I haven’t discovered. If you have ANY ideas, please comment. If you think you know someone that might have ANY ideas, please reblog retweet this.

I’m genuinely looking for info here.

Is Apple Deprecating Itself Into A Hole? [Updated]

Update: This has nothing to do with Apple as this API was signaled for termination long ago.

Just had a hell of a time compiling Firefox 3.6.2 against the 10.6 SDK.

First, I forget to patch the sqlite3 bug (not sure why this is causing me problems as it was closed as fixed). Then after patching, a make clean didn’t get rid of enough cruft to let the build complete.

So starting from scratch and I get a new error I’ve never seen:

In file included from /Users/beetle/src/mozilla/toolkit/xre/nsSigHandlers.cpp:58:
/Developer/SDKs/MacOSX10.6.sdk/usr/include/ucontext.h:42:2: error: #error ucontext routines are deprecated, and require _XOPEN_SOURCE to be defined

And looking in /usr/include/ucontext.h, you see:

#else /* !_XOPEN_SOURCE */
#error ucontext routines are deprecated, and require _XOPEN_SOURCE to be defined
#endif /* _XOPEN_SOURCE */

This file has not been touched since Sep 30 of last year, so WTF. I usually do all my builds against 10.6, but someone asked me to do a 10.5 build so this issue JUST came up as of Firefox 3.6.2 (does not exist in 3.7, yet). Digging and diving a tad, I find that accelerometer controls are baked into 3.6.2 so this is probably what’s causing the problem.

Anyway, to fix this change the ucontext.h include to sys/ucontext.h like this (appears on lines 57-59 of toolkit/xre/nsSigHandlers.cpp):

#if defined(XP_MACOSX)
#include <ucontext.h>


#if defined(XP_MACOSX)
#include <sys/ucontext.h>

Things should be then be smashing, in the Austin Powers kind of way.

So who’s to blame? Mozilla takes the fall on this one, though this bug has already been fixed.

I’m on the bleeding edge here using not-publicly-available Apple dev tools (I’m in the Apple dev program, can’t say anything, NDA, sshhh).

Why Apple Bought Placebase

placebaseUpdate: And we have an answer – Google Maps Ditches Tele Atlas in Favor of Street View Cars and Crowdsourcing

I have no idea. But the title is catchy, and I’m hoping to learn the answer by a) writing out my thoughts and b) you. The transaction went down in July but was only uncovered recently, causing a day long brouhaha on the blog circuit, and now it’s been forgotten. As someone with a little knowledge in this area, I’m a tad more than intrigued. I’m just going to dive into a couple theories. They all focus on why Apple would move away from Google (I’m not even sure that is their intent):

  1. Current Data Limitations
    Google places restrictions on their data use. A clear example of this is Jobs’ “BYOM”, Bring Your Own Map, statement about turn-by-turn directions. Google will not allow their data to be used for such functionality.
  2. Cost Reduction
    Tiles aren’t free. Even to important and huge clients. Google went from a “per transaction” payment model to a “per tile” payment model and the entreprise level pricing isn’t exactly cheap. With the amount of Apple’s usage and even at a substantial discount, this cost is still probably in the tens to hundreds of millions per year.
  3. More Control
    Apple is a control freak. No need to argue this. Being reliant on an increasingly competing company can’t feel good for anyone, especially Apple. The threat of Google barring Apple from their maps or even significantly altering the usage deal has DOJ written all over. This isn’t going to happen and Apple isn’t worried. Google does have free reign to make their maps look like crap if it affects all customers which leads into the next point…
  4. Google Adding Data
    Just recently Google started adding advertisements PLUS user-generated content into iPhone apps. Wait, I thought one of the benefits of the enterprise license was to have the ability to remove ads. And wait, does this only affect iPhone apps? I think Google will come to their senses and flip off that UGC, unless you want to see it. The ad part is a bit odd and doesn’t jive with point 2 and 3 above.
  5. More Control, Redux
    Google doesn’t own the tiles, they are licensed. Tele Atlas provides the map information, and other services provide the satellite imagery (Digital Globe, GeoEye, USGS, TerraMetrics, and the list goes on). There are some interesting things to note here.
    Tele Atlas provides data to many vendors including Yahoo and Microsoft and probably Placebase. Tele Atlas provides the map information, not the tiles, so each vendor can make them look however they want through Tele Atlas’ proprietary API. The United States is a 5GB or so text file. Apple’s designers could make their maps look better than everything else on the market, without a doubt.
    The satellite data comes mainly from Digital Globe, but once you start zooming in, watch the copyright info on the lower right of the map – the data comes from many, many sources. Apple can easily strike deals with these same sources. Digital Globe is happy to point out their non-exclusivity with Google. But on the other hand Google seems to be in bed with GeoEye, launching a satellite together and all.
    Other data such as traffic and street view is proprietary to Google.
  6. Data Layers
    Placebase offers many layers of statistical data for their paid API and have won awards for their PolicyMap website. But if you look close enough, this is just tract data freely available from the US Census Bureau. Gathering and overlaying this data is a trivial task. In one of my previous companies, we built a much, much richer data set covering many more areas than Placebase offers. This was a hurculean task, but as a small startup, we pulled it off. So I think access to the data layers is moot here as it adds little value.

So what’s this all about then? My guess is that is has to do with Augmented Reality/Extended Mapping capabilites. This could be especially useful on the mythical tablet and could be even more useful for the collection of future Census Data. Not only in the US, but the rest of the world. It’s a little late for the 2010 Census though, so this idea is a tad suspicious.

I welcome all opinions, corrections, and comments on this as I really want to get to the bottom of Why Apple Bought Placebase.