Sunday, August 19, 2012

Own Your Words

Scott Hanselman says Your Words Are Wasted. If you don't have a blog, get one. If you do, start posting more. Figure out how to make posting on your blog as easy as posting on Twitter, then you win!

Friday, August 10, 2012

Of Course I Would Get Punished The One Time I Buy Music from Amazon

I hardly ever buy music from Amazon, I'm always afraid somethings going to go wrong because of course it's happened before.
I had some MP3 download credits through movie ticket purchases, so I finally decide to spend them and this:
Screen Shot 2012 08 09 at 10 55 06 PM







I was literally toggling back and forth between iTunes and Safari, thinking do I pull the trigger with Amazon or pay out of pocket with iTunes because I know it's going to work, there's just about no risk.
WTF do I do now? In no way do I want to contact f***ing customer service to buy an album.
Instead I find the link to Your Cloud Player under the Account menu, find the album, attempt a download, have to install the downloader, get told a download failed repeatedly for a song bought like a year ago, and finally the download for this purchase succeeds, but still says some imports failed for the old song. I have iTunes Match, so I then go into iTunes, wait for matching to complete, then delete all the songs and download from iCloud to get AAC files.
Simple.

Monday, July 30, 2012

I've Been Charging iPads Wrong For Over Two Years

MB352
I've got a number of these iPhone USB Power Adapters lying around the house. When I got the iPad 2, I knew of the higher power requirements for charging, but I just never thought much about it because I usually charged the iPad by plugging it into my iMac.

iOS 5 & iCloud changed all that. With backups now going to iCloud, I really had no reason to plug the iPad into the iMac. So I started plugging the iPad directly into the wall, using the iPhone USB adapter. Was charging slow? When I paid attention, sure, but I usually didn't notice because I charged overnight.

When I got the iPad Retina, aka iPad 3 or the new iPad, I noticed charging took a long time. I mean a really long time. I rationalized this away because I know how much larger the iPad Retina battery is. But I started to kind of plan around having to charge the new iPad, making sure the battery was topped up if I knew I needed to use it for an extended time on battery.

I don't remember who, or how it came up, but recently someone mentioned you have to be using the iPad 2+ included adapter or charging takes forever. I of course dismissed this out of hand. How could I, with all the iDevices, detailed knowledge of the development platform and hardware, possibly not be using the correct adapter? I certainly didn't remember any fancy adapter!

21OytorvA3L
Yesterday I opened the iPad 2 and iPad Retina boxes, and sure enough, there's a 10W USB Adapter included! I immediately took my 50% charged iPad Retina and plugged it into the 10W adapter. A few hours later, 85% charged, BOOM! That is simply astonishing charging speed compared to what I was seeing before.

Best of all, the 10W charger works with all iDevices for the fastest charging possible. The cherry on top is that the 10W has a removable plug so you can use it with the World Travel Adapter Kit or the US extension cable.

I was feeling super dumb when I saw the 10W adapter in the iPad boxes, but I quickly got that once I realized how much an improvement this was. If you never took your 10W adapter out of your iPad's box, now would be the time.

Update
While doing laundry this morning, I saw the iPad 1 box, which has been demoted to the basement. I wondered what charger was included with the iPad 1 ? Was it the iPhone Adapter? Opening it up, I see the box layout is the same as the iPad 2 and new iPad, but a charger wasn't in the box! I went back up to the office and opened my junk electronics drawer. Sure enough, another 10W adapter was there collecting dust. I obviously completely forgot about it when I moved houses late last year.

Feel like I should be busted to Apple geek private or something.

Monday, July 16, 2012

License Agreement Screens in Mobile Apps are a Really Bad Idea

Launched the latest update to The Weather Channel app and this is what I see:
IMG 0832
License agreements in apps are a terrible idea. The only app I've ever seen implement something like this is the iTunes app, and that has widely been derided as terrible user experience.
I know I've never seen this on a web site, I'm sure weather.com will never show a license agreement before showing the front page. Why should the app be different?
Worse, the App Store already includes a provision for license agreements, and custom ones at that. Every app gets a generic license agreement that Apple has written by default. However, if you want to provide a custom one, you can.
In the App Store page for The Weather Channel app, I've highlighted the relevant link.
★✩✩✩✩
Screen Shot 2012 07 15 at 12 49 38 PM

Monday, July 02, 2012

Sometimes it's the little things in programming that surprise the most

I need to brush up on Core Data, I've got bugs to solve and I haven't used Core Data for anything real yet, so best to school myself.

I've got iOS Programming: The Big Nerd Ranch Guide 2nd Edition with a chapter on Core Data and Core Data: Apple's API for Persisting Data on Mac OS X to choose from to get started. I chose iOS Programming because it's just a chapter, should be more focused if I can't get all the way through Core Data…

I'm reading through, getting reacquainted with the terminology when I see something that strikes me as odd. The sample is talking about how entities in Core Data don't automatically save their order relative to other entities and how you have to create an attribute yourself to manage this. Authors Joe Conway and Aaron Hillegass call it orderValue. No big deal, done this countless times. Then the authors do something completely unexpected. Instead of using an integer for the attribute, they use a double!

I literally think "huh, that seems strange, I've always used an integer..." and keep reading. A few paragraphs later, they explain why they chose a double. If the entity's position is changed, with an integer you have to change all the other entities orderValues. With a double, you just find the orderValue of entities in front and behind the entity that got moved, then add them together, and divide by two. Thus, the new orderingValue will fall directly in between... As soon as I read that, my mind did something very similar to this moment in Pixar's Ratatouille when critic Anton Ego has a childhood flashback after trying the titular food (starts at :15 into the clip).

 Of course instead of food, I flash backed to all the code I ever wrote using an integer to solve that problem. Correction, all the wrong code I wrote to solve that problem.

Friday, June 01, 2012

iReality: The promise of iPad like fun, the delivery of Windows Vista fail

IMG 0742
IMG 0739Was on the way to Great Grandma's house and stopped at the Palisades Center in West Nyack, NY because of heavy traffic. Wandering around looking for a way for the kids to burn off some energy and what do we find but a small cluster of motion rides.

The heavy hitter was the iReality. It takes some serious arrogance for a mall ride to claim The World's First FULLY Interactive Simulator. Even better, it's blatantly using the iPad to sell this as a ride of the future.

Of course, kids were all over it, and mine were clamoring for a ride. I swing around the side and what do I see but Windows Vista! A classic bait and switch.

Not only is this "ride" not using anything resembling Apple technology, but what's this, the software has crashed and is showing a DOS prompt. DOS, the future is yesterday.

Ducking inside to look closer at the screen, I see that some script is caught in an infinite loop waiting to receive a message from a network service that never answers. I was laughing to hard to take a more clear photo.

So glad I couldn't give these clowns $2.

IMG 0741

Friday, May 25, 2012

How Rogue Amoeba's Airfoil Speakers could get pulled from the App Store for using a non-private API

Apple says Rogue Amoeba's Airfoil Speakers was pulled from the App Store for using a private API.


To recap, using a private API is sure to get your app rejected from the App Store. Unless Rogue Amoeba open sources their app, no one knows for sure if they're using a private API. I believe them when they say they aren't using one. But there is another way to get in the situation they're in.


Let's say an app developer unknowingly uses an API that was previous not flagged as private. Perhaps it's a publicly "known" API, even an open secret, but technically not part of the public API set. Your app passes the automated private API check and gets through manual review. A little while later, Apple adds the previously not-private API you used to the catalog of private APIs. Perhaps Apple realized their oversight, and given how serious they are about apps not using this API, ran an automated check against all App Store apps for usage. They discovered that Airfoil Speakers used this private API. Clearly they choose to pull the app in this case.


I offer this possibility because something similar happened on a project I was working on. A number of versions of the app had been approved and where for sale on the App Store when a small bug fix release was stopped cold during App Store manual review for private API use. The team was mystified at first and insulted, we hadn't used any private APIs, and had barely changed the app, what gives? But we did use a private API without even knowing it. The app used MAZeroingWeakRef for weak pointers, almost exclusively for delegates, but also for KVO notifications. Turns out the version of MAZeroingWeakRef we were using was intercepting a private API call!
@interface NSObject (KVOPrivateMethod)
- (BOOL)_isKVOA;
@end
In a later version of the library, there was a #define to not use that API. We turned it off, the app came crumbling down with memory issues. It was not a fun few days working to solve all the memory management issues MAZeroingWeakRef had hidden from view when there was a critical bug fix update to ship.

Tuesday, May 22, 2012

How Stephen King's "Under the Dome" Made Me A Reading Coward

Stephen King's "Under the Dome" was the first eBook (Kindle if you're keeping score) I ever bought. Reading it took me nearly as long as it took Mr. King to write it, close to 2 years, because I was a coward. Why? Because for most of this book, at least up to the halfway point, I had no idea how it was going to end. That's a good thing you say? I agree, which is why my reaction was so surprising. 

Warning: light spoilers

How does King pull off the "not sure who's going to make it" feeling? The cast of characters is huge, and they die all the time, even the ones that have got significant page time. It sort of feels like Game of Thrones in that regard. Maybe I wasn't being cynical enough, because once you make the halfway turn, the characters that seemed most likely to make it do. The character most likely to be the villain is in fact the villain, or at least the secondary villain. The cause of the dome, the main "villain", I can honestly say was one I didn't fully expect. Does this tie into the Dark Tower somehow? All the "19" references leads me to believe so, but not in any significant way that I can see.

But my cowardice in continue reading the story was shocking once I identified why I took such long breaks. I read other stuff in between, including King's hopefully not final Dark Tower book "The Wind Through the Keyhole" (loved it). I didn't have any issues finishing those stories. If dawned on me as I was finishing Under the Dome that I haven't been watching many movies & shows, playing many story driven games, or reading many books that don't have a long running story. I think this is what sequelitis must feel like, the damage never ending or long running stories do. Maybe it's just me, but it feels like I've been unconditioned from enjoying stories that actually end. Under the Dome was going to fast, the plot was to chaotic, is he going to explain the whole universe?

While I love stories connected to a larger universe (and any Dark Tower connection is tangential), sometimes you just need a story that's self contained, and which leaves a little to the imagination. Sometimes the best stories are the ones that end.

Monday, March 12, 2012

Apple.com Ad Shows New Apple TV Had Different App Names

I was surprised to even see an ad for TV on apple.com. Apple has barely been marketing TV, this seemed like a big deal.


Then I looked closer. The top three apps are named iTunes Movies, iTunes TV Shows, and iTunes Match! Click the ad, and at the full site you see the names as they actually are on the TV: Movies, TV Shows, and Music.


I have two theories. The marketing department intentionally changed the names to more clearly call attention to iTunes, or the new TV was going to ship with the iTunes derived names until a very late date and it slipped into marketing department.


Either way, and interesting alternate universe view in the new TV.

Tuesday, March 06, 2012

Fix Radar or GTFO (my duplicate rdar://10995271)

If you're a 3rd party Apple developer,  please go to Fix Radar or GTFO and follow the steps. My duplicate is rdar://10995271

Another blog post The psychology of Radar is broken is also worth your time reading.

This always amuses File a Radar

And the always amusing Radar or GTFO, which is of the always dapper Apple developer evangelist Michael Jurewitz. Note that Apple has never actually said "Radar or GTFO", it just became a joke meme that stuck.

I think we have Daniel Pasco @ Black Pixel to thank for really bringing this issue to a head in his blog post Radar or GTFO