• New Car Decision

    A few weeks ago I went to the San Diego International Auto Show with my father and my son to kick some tires and see if anything wowed me. We looked at the "green area" and there wasn't much exciting there. To keep my son entertained, we went to Camp Jeep, rode in a Jeep Renegade on their indoor course and my soon climbed a rock wall. Unfortunately (for my car looking), this was the highlight of the trip.

    We went by the Audi booth and didn't see the A3 e-Tron which was quite disappointing. Where is Audi's commitment to the car if they didn't bother showcasing it? We took a look at Acura and Lexus as well. The Acura RDX which I've been eyeing for 9 years is a nice looking car, but man the gas mileage kills me. The Lexus CT200h caught my eye because of the excellent gas mileage, but the overall look isn't enough for me to bite.

    I've decided that the best choice for me right now is to stick with my 2003 Toyota Highlander. I'm going to keep my out for Apple to update it's list of cars supporting CarPlay and keep re-evaluating. This whole process has kind of honed in what I want in a new car:

    • CarPlay - This may seem a bit like I am an Apple fan boy (OK, I am), but not having to update maps and having an interface that can get updated interests me.
    • Decent gas mileage - This either means a hybrid or a plug-in hybrid at the moment. I'm not ready for a pure electric car; we may consider one for my wife's next car and have my car which is driven less as one that consumes gas.
    • Semi-luxurious interior - At the car show, I sat in a lot of cars. The leather in Acura, Audi, and Lexus cars seemed much nicer than that of say the Subaru and the whole cabin just seemed better put together (hard to describe, but felt nicer). I'm not saying I want a Mercedes or a Ferrari interior, just a step up from a Ford.
    • Decent looks

    So I'll wait and see what 2017 models are released and see if anything catches my eye. Kind of a let down as I've been looking forward to a new car for awhile; however, it is the right choice to do nothing.

  • First week with the Apple TV 4th Generation

    Last Friday I received my new 4th Generation Apple TV (note to people living in Southern California…don't pay extra for rush shipping from Apple as products shipped from Apple tend to arrive quickly) and I've been playing with it on and off since. For years now, I've been looking for the best way to handle my family's video entertainment needs. I've played with a number of streaming boxes including the Apple TV 1st generation, Apple TV 2nd generation, Roku 3, and Fire TV 1st generation. With the exception of the 1st generation Apple TV, all the boxes have served some of our needs.

    When my wife first wanted to watch Netflix, I bought the 2nd generation Apple TV as watching it on our Nintendo Wii was not really something I wanted to do. At the time, we were recording shows with El Gato's EyeTV and playing it through a Mac Mini. Having 2 devices was not ideal, so I pieced together a setup to put the EyeTV recordings into iTunes and then play them on the Apple TV. This setup worked quite well for several years.

    Two years ago when I bought a new Vizio TV that had Amazon Prime Video (and Netflix) as apps in it, I tried to use it and found the UI to be impossible to use. I had heard good things about the Roku, so I purchased one. That left me with 2 boxes, one for Amazon Prime Video/Netflix and one for recorded TV shows. I saw that Roku had a Plex app on it, so I setup Plex, changed my setup to move TV shows to Plex and I was basically back down to 1 box (except for AirPlay). Last year, I was given a Fire TV which had Netflix, Amazon Prime Video (obviously) as well as the ability to play games. It also had a Plex app so I was hopeful that this box could be the box and it would give my son the ability to learn to play some video games (yes, I know I'm corrupting my son by wanting him to play games!). Unfortunately the Fire TV's UI (1st generation box) was pretty poor and difficult to navigate. It does have "X-Ray" for Prime Video so it has stayed in use for that as well as some games (my son likes Minecraft). I wrote about the Fire TV before.

    So where did that leave me before the new Apple TV? Well, we still used the Roku 3 for most of our watching, but switched to the Fire TV for games and Amazon Prime Video. The Apple TV was only used for AirPlay. Like every streaming box I've tried, I was hopeful that the 4th generation Apple TV would replace all the other boxes.

    After I unpacked the Apple TV, I put it in place of my old Apple TV in my equipment rack and fired up the TV. Due to issues with RF signals, I was expecting to have to mount it on the wall, but was going to put that off for awhile (turns out the Bluetooth on it is good enough that I can just leave it on the top shelf of my rack). When I started the setup for the Apple TV, I couldn't understand why moving my finger on the remote didn't change the menus. Turns out I had the same problem that others have, I was holding the remote upside down. This does continue to be a problem for me that I have to solve. The Apple TV is able to turn my TV on and off using HDMI-CEC which is an awesome feature. Also, the volume buttons control my Vizio sound bar via IR, so the Apple TV remote is on track to be the only remote I need.

    On day 1, we were able to watch Netflix and play a few games. I did buy the Nimbus SteelSeries game controller so that we could more easily play games. Pangea had a number of titles available and since I had already bought them on the iPad and the games were universal purchase, I could download them for no additional charge. There were a few other games available as well. My son and I played games and in general, they work well with the game controller. No Minecraft or Goat Simulator, yet, so the Fire TV still has to be connected.

    After a few days, Plex appeared on the app store and I quickly downloaded it. It took me about a day to figure out why all my video was being transcoded when being played, but after that, Plex seemed to work well (I had set the maximum bandwidth for the streaming to be 10 Mbps instead of unlimited). The only feature that Plex is missing is the ability to delete episodes. I like the scrubbing and the navigation works well. I do have to train my wife to use the remote and Plex, but that will come with time.

    Now that I had a few games, Netflix, and Plex, the Apple TV could become the primary device. I unplugged the Roku (I'll probably have to plug it back in for my wife until she gets used to the Apple TV, however). I am very close to making the Apple TV the only box we need and I have high hopes that this will happen. However, Amazon has to get off its high horse and port their iPad Amazon Prime Video app to the Apple TV, Minecraft has to be ported as well as Goat Simulator. (Yes, Goat Simulator is a dumb game, but my son loves it.) Given that these are all on the iPad, it shouldn't be a monstrous effort (famous last words) to bring them to the Apple TV.

    I've been using the Apple TV for a week and am really enjoying it; I've been playing Oceanhorn on it, watching Netflix and TV shows via Plex. My son has been watching Bill Nye via Netflix and playing a few games. He loves the box because one remote turns the TV on and off, changes volume, and he can use Siri to skip ahead; I'm not so enamored by Siri as he is. I really hope to retire the Fire TV, but Amazon Prime Video will likely prevent that from happening.

    Even without 4K video (I don't have a 4K TV and all of my content is at most 1080p), the Apple TV, in my opinion, is the box to get for people that don't have anything today. For people that already have an Apple TV or another box, the decision becomes a lot more difficult. The Roku boxes work real well for video; they just didn't have the ability to play many games (casual gaming). The Fire TV (1st generation at least before the promised software update), has a horrible UI. If someone needs/wants Amazon Prime Video, the only real option today (sorry, AirPlay from an iPad isn't a viable option), is the Roku. The Apple TV has tons of potential and does most of what I need it to do today. I'm quite satisfied with the purchase. (It doesn't hurt that I managed to get a good price for my used 2nd generation Apple TV on eBay.)

  • When is zip not zip?

    Like most experienced iOS developers, I use an automated build system. A colleague of mine and I have spent portions of the last 2 years building up our system so what we do looks like magic to others! As part of this system, we've written tools and put together scripts to package our application as an .ipa (iPhone application). An .ipa file is simply a zip file with the extension changed.

    Well, it isn't that simple. It appears that how the zip is created is just as important as the structure of the package. There are various flavors of zip, libraries that do zip, and other tools that zip. In one of our tools, we were using a zip library. It appears that Apple made a change in iOS 9.0.2 or 9.1 that caused applications created by our tool to not install on devices. However, the problem was only present if the app was installed over the air or through iTunes; installed through Xcode's Devices window succeeded. After an arduous day of debugging trying to determine the failure point (provisioning is usually to blame for failures and they can be super frustrating), I switched our tool to use the command line zip (/usr/bin/zip) and amazingly the problem went away.

    It would appear that iTunes, iOS itself, and Xcode use slightly different methods for unzipping and installing applications. Since Apple's xcrun command for packaging (PackageApplication) uses /usr/bin/zip, I think it is a safe bet. It is invoked using something like:

    /usr/bin/xcrun -sdk iphoneos PackageApplication -v MyApp.app -o MyApp.ipa" --sign "iPhone Distribution: Scott Gruby"
    

    On a side note, it also appears that there is an error in the PackageApplication script found at:

    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication
    

    that has:

    "--resource-rules=$destApp/ResourceRules.plist");
    

    In Mac OS X 10.10 and higher, this line is no longer valid, so if you use this command, you need to modify the script.

  • Fixing Missing Sound Output

    As I was trying to troubleshoot why my media center Mac Mini froze twice over the last 2 days, I discovered that the sound output didn't list the Built-in speaker. After a bunch of searches with different suggestions, I decided to reset the NVRAM. The problem is that the Apple support docs say to use Command-Option-P-R at startup and my Mac Mini doesn't have a monitor or keyboard hooked up to it. After some additional searching I found the following command:

    sudo nvram -c
    

    and then a restart. After I did that, the sound output options were back. Yeah! Does this solve the freezes I've seen? I have no idea, yet, but at least I know one problem is solved.