Archive for the 'Misc' Category

Gotcher Address Book!

Even though I installed the Path app and set up an account, I never really used it. It never really clicked with me; I really only signed up because many people I know were trying/using it. So it wasn’t anything close to a “hardship” for me to ask them to delete my account when it was revealed that they were uploading the contents of my address book to their servers. Still, I’m disappointed.

Last fall, we were in the crunch-time week for a client’s app before the iOS 5.0 submission deadline. I was profiling it in Instruments, trying to find where we could improve its launch-time performance, when I found a noticeable amount of time was spent in Address Book queries by a third-party video tracking library.

Not only was this behavior slowing down our launch, it was unexpected and–since it was a binary library without source code provided–we had no idea what it was doing with that information. A red flag was raised, and to my surprise the client even expressed willingness to cut the functionality until the questions could be answered.

As explained, the usage was almost clever: By adding a defined contact to your address book, you would unlock additional debug logging and reporting options for their SDK. They claimed that there were numerous applications already approved with this SDK, and I don’t feel the need to question their veracity. Most importantly, they offered a build without that functionality, provided it quickly, and that’s what shipped.

So it disappoints me that after my own personal experience of trying to keep code out of the Address Book, there are developers out there who apparently don’t think twice about slurping all of your contacts and sending them to their servers without your express permission.

This has happened before with Aurora Feint. It forever tainted my opinion of Open Feint, which came out of that. I had been under the impression that Apple was much more strict about this type of behavior–”chance of rejection” was one of the main reasons I brought attention to the library’s unexpected access. So I’m disappointed in Apple, too.

There have been calls for Apple to add required guards and notifications to the API’s access, similar to how Location Services is handled. That would probably be good, but at a certain point all the notifications just become “Grant Access?” alerts that users don’t think about. I think there’s a simpler way to do it, at least for a first attempt:

  1. When submitting an app to iTunes Connect, ask “Do you access and transmit Address Book data?” similar to the existing question about using encryption.
  2. Answering “yes” is a flag to the review team to verify that the developers have implemented their own reasonable opt-in mechanism, and maybe even a bit more scrutiny of their network traffic.
  3. If an app is found to be violating this, terminate the developer’s account.

Yes, I feel that violating this expectation after making it clear that you are expected to be transparent about using this kind of information is worthy of booting you out of the App Store.

 

How to Fix Patents

As I understand it, the intent of a patent is to protect the value of the invention to the inventor by giving them exclusive control of the rights to use said invention. In return, they are asked to encourage future innovation by sharing that information with the world instead of keeping it a proprietary secret. Pretty simple and straightforward, and I really have a hard time disagreeing with that being a desirable goal.

Most of the complaints about the patent system being “broken” come down to a few points:

  1. The patent is not novel; it’s an obvious method to anyone spending any mental effort on the problem space.
  2. The patent is too broad; It could cover any number of possible techniques without taking a stand on one (or a handful). This usually seems to be done to get around the requirement of sharing the information, keeping aspects proprietary. One might also consider this related to “not novel.”
  3. The inventor (or, usually, reassigned rights holder commonly referred to as “patent troll”) has done nothing with their rights to the patent on their own. On its own, there is nothing wrong with this–it would be perfectly legitimate to have a sole licensee. When combined with items 1 or 2, though, most people agree that it’s is predatory and stifles innovation rather than encouraging it.

My Proposal: Within a defined grace period after patent status is granted (I’m envisioning 5 years, maybe 7), the patent holder must show measurable revenue due to a concrete implementation of the patent, or that it is a recognizable part of another product which generates recognizable revenue. This revenue may be recognized directly by the inventor, or by licensees of the patent. If such evidence is not given within the grace period, the patent is considered fallow and control rights are revoked.

A patent that does not result in a concrete implementation within a reasonable period of time is hard to consider as “benefitting society” and thus unworthy of the rights exclusivity granted by the society in exchange.

Year in Review 2010

It’s still the first half of January, so I’m in the grace period for a “Year in Review” post.

2010 was one heck of a slingshot year for me and Corporation Unknown. I started the year unemployed and thin on contract work, and finished it with Corporation Unknown’s highest revenue in its 3-year history and a job offer I can’t refuse.

(Read the article)

iPad and the Digital Hub

Yesterday I tweeted about a feature I would like:

Want: iPod on iPad able to browse desktop iTunes à la Home Sharing. Watching WWDC videos on iPad w/o having to sync first–yum.

I received a few recommendations for Air Video and StreamToMe. I’d forgotten that I’d downloaded Air Video but hadn’t set up the server; I’d also forgotten about StreamToMe even though I subscribe to Matt Gallagher’s blog.

I fired up the Air Video Server and started it serving the iTunes U playlist. Connecting and browsing from the iPad client was simple and straightforward. Trying to stream a WWDC video paused to buffer annoyingly often–which I blame less on the software than the 2GHz Mini it was running on, which probably also had the misfortune to have Time Machine kick in at the same time. But it doesn’t seem to have a functionality I implied by the “Home Sharing” reference: Copy the video to the iPad to watch elsewhere later. StreamToMe looks to have similar features (and lack thereof) to Air Video, so I didn’t test it.

I appreciate the recommendations, I really do. But neither of these can get past the one requirement I didn’t specify: I don’t want a third-party solution. My tweet was really a passive-aggressive desire to have Apple implement this.

(Read the article)

Prepping for WWDC

I’m packed for WWDC, and have mowed the lawn so it’s not a jungle when I return. Earlier this week, I began prepping my hardware to have (hopefully) everything I need. There are plenty of WWDC “survival guides” out there–most recently an excellent one from Brent Simmons–and I even tried adding some pointers of my own last year. This year, I’ve noticed some little tips and ideas which may not be obvious; they may be too close to the trip to help anybody else out, but they might help you (or me) next year. (Read the article)

Whoa, It’s 2009 Already

I wrote my first check of the year yesterday and remembered to date it “2009.” More importantly, it wasn’t a personal check–it was a business check.

My wife and I have registered with the State of Washington as “Goracke Consulting, LLC” (the word “Corporation” is not allowed in an LLC name–who knew?) doing business under the name “Corporation Unknown.” It’s been an interesting process; not difficult, but filled with worry about not “doing it correctly” at each step. We made the final step of opening the business bank account on the last day of the year, and are ready to officially enter our first full year of business.

Since last year’s simple goals worked out pretty well, I think I’ll state my business goals for this year. In no particular order:

(Hoo-boy, that joke never gets old.)

I have a couple dev-related posts I’ve been meaning to get out of my head which should be appearing soon. One of them will (if all goes as planned) include shared code I hope people will find useful.

Happy New Year!

Year of the Sell-Out

First WWDC sold out, but I got in on the last day of early registration.

Now, C4[2] opened registration and sold out while I was off on a weekend getaway. I hadn’t attended the previous two years, but was hoping to make it happen this year. There’s not much I can do about that except say “bummer” and look on the bright side: I had been very close to booking a flight and room when the dates were first announced, and I haven’t had to spend the day canceling reservations now.

What is the next Mac dev conference this year, and where should I set up my tent for the line?

Begone, Kubrick!

I’m certainly not planning to keep people updated on every CSS selector change on the site (there will be a lot), but I have to mark the occasion of changing from the boring stock WordPress “Kubrick” theme to the first revision of Corporation Unknown’s graphic identity.

Most significant is the new logo done by our friends at SkyCubeMedia. Thanks to Sky (and my wife’s initial sketch), I now have a site identity I can carry around (in the form of business cards) to WWDC.

Welcome to Corporation Unknown!

Well, here we go…

Corporation Unknown will serve to track the course of my progress to an intended career as an independent Mac software developer. No, I don’t hate my job (even though it’s not Mac development), but I do feel that this is the long-term path to my career happiness and further success. We will track milestones on the way to launch, and share insights gained along the way–both in business and code.

Obviously, there is a product planned; it’s not Web 2.0, and it’s not going to change the world as you know it (in version 1.0, at least). It will be easier to use than what’s out there, yet more powerful at the same time–and I already have plans for more powerful future versions.

Let us begin…